최재영의 개발 일지
GitHubLinkedIn

ls 명령어

Linux1분 읽기

ls

$ ls [options] [file ...]

피연산자의 종류에 따라 요청한 정보를 표시한다. 피연산자가 없다면 현재 디렉토리의 정보를 표시한다.

  • 디렉토리: 해당 디렉토리에 포함된 파일들의 정보
  • 파일: 해당 파일의 정보

자주 사용되는 옵션

옵션설명
-l긴 목록 형식으로 표시한다. 파일의 상세 정보(권한, 소유자, 크기, 수정 시간 등)를 확인할 수 있다.
-a숨김 파일(.으로 시작하는 파일)까지 모두 표시한다.
-h파일 크기를 KB, MB, GB로 사람이 읽기 쉽게 표시한다.
-t파일을 최종 수정 시간 순서로 정렬한다. 최근 파일을 찾을 때 유용하다.
-S파일을 크기 순으로 정렬한다.
-R하위 디렉토리까지 재귀적으로 모두 표시한다.
-F파일 유형을 구분할 수 있는 기호를 추가한다. 디렉토리는 /, 실행 파일은 *, 심볼릭 링크는 @이다.
-i파일의 inode 번호를 표시한다. 하드 링크 관계를 확인할 때 유용하다.
-d */현재 디렉토리 내의 디렉토리만 표시한다.

긴 형식

-l 옵션이 주어지면 각 파일에 대해 다음의 정보가 표시된다.

  1. 파일 모드
  2. 링크 수
  3. 소유자 이름
  4. 그룹 이름
  5. 파일의 바이트 수
  6. 마지막 수정 날짜
  7. 파일명
$ ls -l
drwxr-xr-x 2 user group 4096 Mar 15 14:30 Documents
#   1     |2| 3  |  4  | 5  |     6      |    7

파일 모드

파일 모드는 파일의 유형과 권한으로 구성된다. 유형, 소유자 권한, 그룹 권한, 기타 사용자 권한 순이다.

유형
|  그룹 권한
|    |
-   ---
drwxr-xr-x ...
 ---   ---
  |     |
  |    기타 사용자 권한
소유자 권한

유형

  • -: 일반 파일
  • b: 블록 특수 파일
  • c: 문자 특수 파일
  • d: 디렉토리
  • l: 심볼릭 링크
  • p: FIFO (named pipe)
  • s: 소켓
  • w: 화이트아웃

권한

권한은 3개의 문자로 표시된다. 순서대로 읽기, 쓰기, 실행 권한을 의미한다.

1. 읽기 권한

  • r: 파일을 읽을 수 있다.
  • -: 파일을 읽을 수 없다.

2. 쓰기 권한

  • w: 파일을 쓸 수 있다.
  • -: 파일을 쓸 수 없다.

3. 실행 권한

  • x: 파일이 실행 가능하거나, 디렉토리 내부에 접근할 수 있다.
  • -: 파일을 실행할 수 없거나, 디렉토리 내부에 접근할 수 없다.

특수 권한

setuid (set user ID)
  • 표시: 소유자의 실행 권한 위치(3번째)
  • 의미: 파일을 실행할 때, 실행하는 사용자의 권한이 아닌 파일 소유자의 권한으로 실행됨
  • s: 실행 권한이 있을 때
  • S: 실행 권한이 없을 때
setgid (set group ID)
  • 표시: 그룹의 실행 권한 위치(6번째)
  • 의미: 파일을 실행할 때, 실행하는 사용자의 그룹이 아닌 파일 그룹의 권한으로 실행됨
  • s: 실행 권한이 있을 때
  • S: 실행 권한이 없을 때
sticky bit
  • 표시: 기타 사용자의 실행 권한 위치(9번째)
  • 의미: 주로 디렉토리에 사용되고, 디렉토리 내부 파일은 소유자만 삭제할 수 있음
  • t: 실행 권한이 있을 때
  • T: 실행 권한이 없을 때