One Step Two Step
[Linux] 폴더와 같은 리눅스의 디렉터리 그리고 파일 본문
반응형
- 파일
- 데이터를 읽을 수 있는 자원 혹은 데이터를 쓸 수 있는 모든 대상 → 넓은 의미로 디렉터리도 파일로 볼 수 있음
- 디스크 파일 같이 저장된 것만 가리키는 것이 아니라 모든 물리적인 구동장치를 가리킴
- 특히, 키보드(입력 자원, stdin)도 파일이고, 모니터(출력 대상, stdout)도 파일이고, 각 프린터(출력 대상) 역시 파일
- 파일의 종류
- 일반 파일 (Ordinary File): 데이터를 가지고 있으면서 디스크에 저장됨
- 디렉터리 파일 (Directory File): 디스크에 저장되어 있으면서 다른 파일을 조직하고 액세스 하는데 필요한 정보 가짐
- 특수 파일 (Special) or 디바이스 파일 (Device): 물리적인 장치에 대한 내부적인 표현 ☞ /dev/rsd0
- 문서 파일 vs 이진 파일
- 문서 파일
- ASCII 문자(키보드에서 입력할 때 생성되는 데이터)만을 가지고 있는 일반 파일
- 문서 파일은 문서, 프로그램, 쉘 스크립트 등을 작성하는데 사용됨
- 이진 파일
- 문자가 아닌 데이터가 들어 있는 일반 파일
- 이진 파일은 일반적으로 프로그램에 의해서 처리될 때만 의미가 있는 데이 터를 포함 (실행 파일 자체도 이진 파일에 해당함)
- 문서 파일
- 디렉터리
- 파일을 계층적으로 구조화하는 단위 (폴더 개념과 동일)
- 부모 디렉터리 - 다른 디렉터리를 가지고 있는 디렉터리
- 서브 디렉터리 - 다른 디렉터리 안에 있는 디렉터리
- 리눅스 디렉터리 체계

- 디렉터리로 이동
- 작업 디렉터리 바꾸기 cd(change directory) 사용 ☞ $ cd [directory] // directory: 이동하고자 하는 디렉터리 이름
- 디렉터리 이름 없이 cd 사용시 자신의 Home 디렉터리로 이동
- 현재의 작업 디렉터리 확인 pwd(print working directory) 사용 ☞ $ pwd
- 디렉터리 생성, 삭제
- 디렉터리 생성 (mkdir) ☞ $ mkdir directory
- 디렉터리 삭제 (rmkdir) ☞ $ rmdir directory // 삭제할 디렉터리 내용이 empty이어야 함
- 디렉토리 이름으로는 문자, 숫자, 특수 문자 등의 조합을 사용함
- 디렉토리 이름은 절대 및 상대 경로명을 사용하여 지정할 수 있음
- $ mkdir ../../course/linux // “..”: parent directory
- $ cd ~/linux/course // “~”: home directory
- $ rmdir ./course/linux // “.”: current directory
- 디렉터리 / 파일 이동
- 디렉터리 이동 명령어 (mv) ☞ $ mv directory target-directory
- 파일 이동 명령어 (mv) ☞ $ mv file target-directory
- mv의 목적
- 디렉터리 / 파일 이름 다시 짓기
- 디렉터리 / 파일 옮기기
- 서브 디렉터리 전체 옮기기
- 디렉터리 확인
- 디렉터리 내용 확인 (ls) ☞ $ ls [-adglrsCFR] [directories or files]
- “ls”의 기본 기능은 디렉토리에 있는 파일 이름을 알파벳 순서대로 보여 주는 것
- $ ls
- $ ls –l // 파일 정보 자세히 보기 (long option)
- $ ls –F // 실행 파일, symbolic link 확인
- $ ls –a // 숨겨진 파일 보기(“.”로 시작)
- $ ls -laF
- $ ls –t // 최종 갱신 시간 순으로 보기
- Alias
- 기존 명령어 또는 복잡한 명령 조합에 대해 짧은 대체 이름을 부여하는 셸 내장 기능
- $ alias ll 'ls –l' // ls -l로 사용하던걸 ll로 사용 가능
- $ alias la 'ls –a'
- $ alias cdprj 'cd ~/course/linux/project'
- Shell에 따라서 중간에 "="을 넣어야 할 수 있음
- $ alias ll='ls –l'
- 현재 alias 지정된 내용 보기 ☞ $ alias
- 일반적으로 자주 쓰이는 명령은 alias로 지정하여 .cshrc (or. bashrc) 파 일에 저장함
- 기존 명령어 또는 복잡한 명령 조합에 대해 짧은 대체 이름을 부여하는 셸 내장 기능
- 파일 내용 확인
- cat: 파일 내용을 화면에 출력 (여러 파일 이름을 인수로 가질 수 있으며 , 작은 파일의 내용을 보기에 적당함)
- more: 화면 크기 단위로 파일 내용 보기 (큰 파일의 내용을 보기에 적당 하며, 중간에 중단하고 싶은 경우 ‘q’를 입력함)
- head: 파일의 머리(head) 부분의 내용을 출력함 (“-n” 옵션을 사용하여 출력을 원하는 라인 수를 지정할 수 있음)
- tail: 파일의 끝부분(tail) 부분의 내용을 출력함 (“-n” 옵션을 사용하여 출력을 원하는 라인 수를 지정할 수 있음)
- file: 파일의 유형(텍스트 파일, 그림 파일, 실행 파일 등)을 확인함
- 복사
- 파일을 다른 파일로 복사
- $ cp file1 file2 // file1을 file2에 복사
- $ cp –i file1 file2 // interactive option (파일을 overwrite 하는 것(file1이 file2에 overwrite 되는 것)을 확인하기 위함)
- 파일을 다른 디렉터리로 복사
- $ cp [-i] files directory // 파일들(files)을 directory에 복사
- 디렉터리를 다른 디렉터리로 복사
- $ cp -r dir1 dir2 // (directory1의 모든 내용(서브 디렉토리 포함)을 directory2로 복사), (“-r” option은 recursive를 의미함)
- 파일을 다른 파일로 복사
- 파일 삭제
- $ rm files // 파일들(files)을 삭제
- $ rm –i files // interactive option (삭제 여부를 확인함)
- $ rm –f files // force option (파일 모드에 관계없이(“w” mode가 set 되어 있지 않은 경우에도) 삭제함)
- 디렉터리 내용 모두 삭제
- $ rm -r directory // (주어진 디렉토리의 내용(서브 디렉터리 포함)을 모두 삭제함)
- $ rm –rf directory // (디렉토리 내의 서브 디렉터리 및 파일의 모드에 관계없이 모두 삭제함)
- 파일의 권한 관리
- 리눅스/유닉스의 세 가지 조합의 사용 권한
- 사용자 개인을 위한 것 (owner)
- 사용자가 속한 그룹을 위한 것 (group)
- 시스템에 있는 모든 사람을 위한 것 (others)
- 각 파일과 디렉토리에 대해, 사용자 자신을 위해, 사용자가 속한 그룹을 위해 그리고 모든 사람을 위해 각각 분리된 읽기(r), 쓰기(w), 실행(x)의 권한을 부여할 수 있다는 의미

- " rwx rwx r-x " 경우 owner, group은 모든 권한이 있고, others는 r, x만 가능(쓰기 x)
- 리눅스/유닉스의 세 가지 조합의 사용 권한
- 파일 모드 (file mode)
- rwx의 사용 권한을 표현하기 위하여 세 자리 8진수 숫 자 코드를 사용
- 첫 번째 8진수는 사용자(owner)의 권한을,
- 두 번째 8진수는 그룹(group)의 권한을,
- 세 번째 8진수는 모든 사용자(others)의 권한을 나타냄
- 예제
- 755 → 111 101 101 → rwx r-x r-x
- 644 → 110 100 100 → rw- r-- r--
- 400 → 100 000 000 → r-- --- ---
- 파일 권한(모드) 변경
- 파일에 대한 권한(모드)를 변경 chmod(change mode) ☞ $ chmod mode files_or_directories
- mode = three octal digits (예: 755, 644, 400)
- mode = [u|g|o]+[+|-][r|w|x]+ (예: u+x, g-x, o+r)
- 일반 사용자는 자신의 파일/디렉토리에 대한 권한 변경이 가능
- 루트 유저(root)는 모든 파일/디렉토리에 대한 권한 변경이 가능
- 파일에 대한 권한(모드)를 변경 chmod(change mode) ☞ $ chmod mode files_or_directories
- rwx의 사용 권한을 표현하기 위하여 세 자리 8진수 숫 자 코드를 사용
- 파일 비교
- cmp ☞ $ cmp file1 file2
- 두 파일의 차이 여부를 판단, 차이가 있다면 파일 내 어디서 처음 달라지는지를 출력
- diff ☞ $ diff file1 file2
- 두 파일을 줄 단위로 비교하여 그 차이를 출력함 (어느 줄, 어디서 달라지는지를 자세하게 출력하므로, 소스 비교 등을 할 때 활용)
- cmp ☞ $ cmp file1 file2
- 메타 문자
- *(asterisk)
- 모든 문자열와 대응
- *는 0개 이상의 문자열에 일치시키며, 이는 모든 파일명을 대표하는 메타문 자로 사용됨
- ?(question mark)
- 하나의 문자와 대응
- […](brackets)
- 괄호 안 문자 중 한 문자와 대응되며, 괄호 안에 문자의 범위를 표현하기 위하여 “–”와 함께 사용할 수 있음
- *(asterisk)
반응형
'복습 > Linux' 카테고리의 다른 글
| [Linux] 기본 명령어 gogogo (0) | 2026.03.08 |
|---|---|
| [Linux] 리눅스의 필수 도구, vi 편집기 완벽 가이드 (0) | 2026.03.07 |
| [Linux] 기초 입문: 명령어, 쉘 프롬프트, 간단한 명령어 총정리 (0) | 2026.03.06 |