ls 명령어
디렉토리의 내용을 출력한다
- 옛날 MS-DOS의
dir
같은 명령이다.
일러두기
나는 macOS의 builtin ls
가 아니라 GNU Coreutils의 ls
를 사용한다.1
# coreutils 설치
brew install coreutils
macOS builtin ls
와 큰 차이가 있는 것은 아니지만 출력 결과의 날짜 포맷을 지정하는 기능이 있기 때문이다.
나의 alias
나는 .bashrc
에 다음과 같이 ls
와 관련된 alias를 설정해두었다.
# alias ls='ls -G'; #osx
alias ls='gls --color=tty --time-style="+%Y-%m-%d %a %H:%M:%S"';
alias ll='gls -alh --color'
alias l.='ls -dG .*'
alias lsa='exa --time-style="long-iso"';
alias lla='exa --time-style="long-iso" -alh'
Examples
여러 디렉토리 나열
$ # css, js 디렉토리의 내용을 나열한다.
$ ls css js
css:
main.scss
js:
category.js create-link.js parent.js shortcut.js toc-highlight.js
$ # -l 옵션을 줘도 작동한다.
$ ls -l css js
css:
total 4
-rwxr-xr-x 1 johngrib staff 546 2023-03-17 Fri 23:31:10 main.scss
js:
total 24
-rw-r--r-- 1 johngrib staff 2719 2023-04-01 Sat 14:05:49 category.js
-rw-r--r-- 1 johngrib staff 6769 2023-03-17 Fri 23:31:10 create-link.js
-rw-r--r-- 1 johngrib staff 1852 2023-03-17 Fri 23:31:10 parent.js
-rw-r--r-- 1 johngrib staff 3071 2023-03-17 Fri 23:31:10 shortcut.js
-rw-r--r-- 1 johngrib staff 2007 2023-03-17 Fri 23:31:10 toc-highlight.js
-l : 파일의 상세 정보 출력
-l
옵션을 사용하면 파일의 상세 정보를 출력한다.
$ ls -l
total 7.9M
drwxr-xr-x 47 johngrib staff 1.5K 2023-08-02 Wed 21:20:55 .
drwxr-x---+ 76 johngrib staff 2.4K 2023-08-02 Wed 21:09:34 ..
drwxr-xr-x 15 johngrib staff 480 2023-08-02 Wed 21:24:50 .git
-rw-r--r-- 1 johngrib staff 165 2023-03-17 Fri 23:31:10 .gitignore
-rw-r--r-- 1 johngrib staff 11K 2023-07-31 Mon 21:04:13 404.html
-rw-r--r-- 1 johngrib staff 1.1K 2023-03-17 Fri 23:31:10 LICENSE
-rw-r--r-- 1 johngrib staff 734 2023-03-17 Fri 23:31:10 README.md
출력 결과는 컬럼별로 다음과 같은 의미를 갖는다.
- 파일의 접근 권한 정보.
- 첫 글자: "file type" 이라 부른다.
-
: 파일d
: 디렉토리l
: 심볼릭 링크c
: 문자 특수 파일. 터미널이나 모뎀같이 바이트의 열로 데이터를 처리하는 디바이스.b
: 블록 특수 파일. 하드 디스크나 CD-ROM 같이 블록 단위의 데이터를 처리하는 디바이스.
- 첫 글자 이후 9개 글자: [[/cmd/chmod#file-mode]]{"file mode"}라 부른다.
_rwx______
: 파일 소유자(Owner) 퍼미션.____rwx___
: 파일 소유 그룹(Group) 퍼미션._______rwx
: 기타 사용자(World) 퍼미션.
- 첫 글자: "file type" 이라 부른다.
- 하드 링크의 수.
- 파일 소유자의 이름.
- 파일을 소유한 그룹의 이름.
- 파일 크기(byte)
- 파일 최종 수정 날짜.
- 파일 최종 수정 요일.
- 파일 최종 수정 시간.
- 파일 이름.
-a : 모든 파일 보기
-a
옵션을 사용하면 숨김 파일을 포함한 모든 파일을 보여준다.- 함께 자주 사용하는 옵션들
-h
: 파일 크기를 사람이 읽기 쉽게 출력한다.-l
: 파일의 상세 정보를 출력한다.
# 숨김 파일을 포함한 모든 파일을 보여준다.
ls -a
# 숨김 파일을 포함한 모든 파일의 상세 정보를 보여준다.
ls -al
# 숨김 파일을 포함한 모든 파일의 상세 정보를 보여주고, 파일 크기를 사람이 읽기 쉽게 출력한다.
ls -alh
-d : 디렉토리 나열
-d
옵션을 사용하면 디렉토리들만 선택해 나열한다.
단 */
를 뒤에 붙여주지 않으면 기본 입력이 .
이므로 .
만 출력된다.
ls -d */
-R : 하위 디렉토리를 재귀적으로 탐색
-R
옵션을 사용하면 하위 디렉토리를 재귀적으로 탐색한다.
ls -R
-r : 역순으로 나열
-r
옵션을 사용하면 역순으로 출력한다.
ls -r
이 옵션을 사용하면 ls | sort -r
과 비슷한 결과를 얻을 수 있다.
-t : 수정 시간 순으로 나열
-t
옵션을 사용하면 수정 시간 순으로 출력한다. 가장 최근에 수정된 파일이 제일 위에 나온다.
ls -t
# 수정시간 역순으로 나열
ls -tr
-i : 파일의 inode 번호 출력
-i
옵션을 사용하면 파일의 inode 번호를 출력한다.
$ ls -i /bin/[
1152921500312434706 '/bin/['
$ ls -i /bin/test
1152921500312434706 /bin/test
위의 예제에서는 /bin/[
와 /bin/test
의 inode 번호가 같다는 것을 알 수 있다. /bin/[
와 /bin/test
는 같은 파일(1152921500312434706
)에 대한 하드 링크이기 때문이다.
두 파일에 대해 -l
옵션으로 조사해보면 해당 파일에 대한 하드 링크가 2개 (2번째 필드)라는 것을 알 수 있다.
$ ls -l /bin/[ /bin/test
-rwxr-xr-x 2 root wheel 134224 2023-06-15 Thu 19:08:29 '/bin/['
-rwxr-xr-x 2 root wheel 134224 2023-06-15 Thu 19:08:29 /bin/test
함께 읽기
- [[/cmd/chmod#file-mode]]
참고문헌
- 리눅스 커맨드라인 완벽 입문서 / 윌리엄 E. 샤츠 주니어 저 / 이종우, 정영신 공역 / 비제이퍼블릭(BJ퍼블릭) / 초판 1쇄 발행: 2013년 01월 11일 / 원제: The Linux Command Line