ls 쉘 커맨드 사용법
맥이나 리눅스 터미널에서 가장 자주 사용하는 커맨드 중에 하나인 ls
에 대해서 알아보도록 하겠습니다. ls
는 파일이나 디펙토리 목록을 나열하기 위해서 사용하는 리눅스 커맨드입니다.
파일과 디렉터리 나열하기
단순히 현재 디렉터리 내의 어떤 파일과 디렉터리가 있는지를 보려면 터미널에 ls
라고 입력합니다. 기본적으로는 알파벳 순으로 나옵니다.
$ ls
README.md dist node_modules package.json run.sh src
확장자 여부로 파일과 디렉터리를 유추할 수 있지만 좀 더 명확하게 파일과 디렉터리가 구분되었으면 좋겠습니다.
파일과 디렉터리 구분하기
-F
옵션을 사용하면 디렉터리 이름 뒤에는 /
기호가 붙습니다. 또한 실행가능한 파일 뒤에는 *
기호가 붙습니다.
$ ls -F
README.md dist/ node_modules/ package.json run.sh* src/
뿐만 아니라 심볼릭 링크 뒤에는 @
기호가 붙어서 일반 파일이나 디렉터리와 대비되어 보입니다.
시간 순으로 나열하기
-t
옵션을 사용하면 최근에 수정한 파일이 먼저 나오고 예전에 수정한 파일은 나중에 나옵니다.
$ ls -t
run.sh README.md package.json node_modules dist src
크기 순으로 나열하기
-S
옵션을 사용하면 크기가 큰 파일이 먼저 나오고 크기가 작은 파일이 나중에 나옵니다.
$ ls -S
node_modules package.json dist src README.md run.sh
역순으로 나열하기
-r
옵션을 사용하면 알파멧 역순으로 나열됩니다. -t
나 -S
조합해서 사용하면 시간 역순, 크기 역순으로도 정렬할 수 있습니다.
$ ls -r
src run.sh package.json node_modules dist README.md
$ ls -tr
src dist node_modules package.json README.md run.sh
$ ls -Sr
run.sh README.md src dist package.json node_modules
숨긴 파일 보기
-A
옵션을 사용하면 .
으로 시작하는 숨겨진 파일까지 확인할 수 있습니다.
$ ls -A
.git .gitignore README.md dist node_modules package.json run.sh src
-a
옵션을 사용하면 .
와 ..
까지 함께 출력됩니다.
$ ls -a
. .. .git .gitignore README.md dist node_modules package.json run.sh src
참고로 여기서 .
는 현재 디렉터리 ..
는 상위 디렉터리를 의미합니다. cd .
나 cd ..
가 동작하는 이치랑 같습니다.
상세하게 확인하기
-l
옵션을 사용하면 좀 더 자세한 정보를 파일이나 디렉터리마다 한줄씩 여러 줄에 출력합니다.
$ ls -l
total 8
-rw-r--r-- 1 dale staff 51 8 Aug 16:37 README.md
drwxr-xr-x 4 dale staff 128 7 Aug 16:45 dist
drwxr-xr-x 507 dale staff 16224 7 Aug 16:46 node_modules
-rw-r--r-- 1 dale staff 371 7 Aug 16:46 package.json
-rwxr--r-- 1 dale staff 33 10 Aug 16:43 run.sh
drwxr-xr-x 3 dale staff 96 7 Aug 09:15 src
크기를 쉽게 알아보기
-hl
옵션을 사용하시면 파일이나 디렉터리 크기에 단위가 붙어서 읽기 편한 상태로 표시됩니다. (예. 1K 234M 2G)
$ ll -hl
total 8
-rw-r--r-- 1 dale staff 51B 10 Aug 16:37 README.md
drwxr-xr-x 4 dale staff 128B 7 Aug 16:45 dist
drwxr-xr-x 507 dale staff 16K 7 Aug 16:46 node_modules
-rw-r--r-- 1 dale staff 371B 7 Aug 16:46 package.json
-rwxr--r-- 1 dale staff 33B 10 Aug 16:43 run.sh
drwxr-xr-x 3 dale staff 96B 7 Aug 09:15 src
디렉터리 자체 정보 보기
ls
커맨드 다음에 파일 이름을 붙이면 파일에 대한 정보를 표시하지만 디렉터리를 붙이면 디렉터리 내부에 있는 파일과 디렉터리를 나열합니다.
$ ls -l package.json
-rw-r--r-- 1 dale staff 371 7 Aug 16:46 package.json
$ ls -l dist
total 1488
-rw-r--r--@ 1 dale staff 2294 7 Aug 22:21 index.html
-rw-r--r-- 1 dale staff 753927 7 Aug 16:45 main.js
이럴 때는 -d
옵션을 주시면 디렉터리 자체에 대한 정보만을 확인할 수 있습니다.
$ ls -dl dist
drwxr-xr-x 4 dale staff 128 7 Aug 16:45 dist
패턴 매칭하기
ls
커맨드는 Globs 패턴 매칭도 지원합니다.
$ ls src/*.{ts,tsx}
src/App.test.tsx src/App.tsx src/index.tsx src/react-app-env.d.ts src/reportWebVitals.ts src/setupTests.ts
한 번에 여러 파일을 찾을 때 사용하는 Glob Pattern에 대한 자세한 내용은 관련 포스팅을 참고바랍니다.
옵션 조합하기
위에 나온 옵션들을 다양하게 조합해서 사용할 수 있습니다. 예를 들어 아래는 숨긴 파일까지 포함해서 크기는 읽기 쉬운 형태로 파일과 디렉터리 구분해서 상세하게 표시하기 위한 커맨드입니다.
$ ls -ahlF
total 8
drwxr-xr-x 11 dale staff 352B 10 Aug 16:55 ./
drwxr-xr-x 8 dale staff 256B 9 Aug 22:11 ../
drwxr-xr-x 9 dale staff 288B 10 Aug 17:29 .git/
-rw-r--r-- 1 dale staff 214B 10 Aug 16:55 .gitignore
-rw-r--r-- 1 dale staff 51B 10 Aug 16:37 README.md
drwxr-xr-x 4 dale staff 128B 7 Aug 16:45 dist/
drwxr-xr-x 507 dale staff 16K 7 Aug 16:46 node_modules/
-rw-r--r-- 1 dale staff 371B 7 Aug 16:46 package.json
-rwxr--r-- 1 dale staff 33B 10 Aug 16:43 run.sh*
drwxr-xr-x 3 dale staff 96B 7 Aug 09:15 src/
추가 Tip. Alias로 등록하기
ls
커맨드는 워낙 자주 사용하는 커맨드이기 때문에 즐겨쓰는 옵션과 함께 alias로 등록해두면 매번 타이핑할 필요가 없기 때문에 편리합니다.
$ alias ll='ls -ahlF'
$ ll
total 8
drwxr-xr-x 11 dale staff 352B 10 Aug 16:55 ./
drwxr-xr-x 8 dale staff 256B 9 Aug 22:11 ../
drwxr-xr-x 9 dale staff 288B 10 Aug 17:29 .git/
-rw-r--r-- 1 dale staff 214B 10 Aug 16:55 .gitignore
-rw-r--r-- 1 dale staff 51B 10 Aug 16:37 README.md
drwxr-xr-x 4 dale staff 128B 7 Aug 16:45 dist/
drwxr-xr-x 507 dale staff 16K 7 Aug 16:46 node_modules/
-rw-r--r-- 1 dale staff 371B 7 Aug 16:46 package.json
-rwxr--r-- 1 dale staff 33B 10 Aug 16:43 run.sh*
drwxr-xr-x 3 dale staff 96B 7 Aug 09:15 src/
마치면서
이상으로 ls
커맨드 사용법에 대해서 알아보았습니다. 지금까지 다루웠던 옵션들을 최종 정리를 해보면 다음과 같습니다.
옵션 | 기능 |
---|---|
-F | 파일/디렉터리 구분 |
-t | 시간 정럴 |
-S | 크기 정렬 |
-r | 역순 정렬 |
-A(-a) | 숨긴 파일 보기 |
-l | 상세 보기 |
-h | 단위 보기 |
-d | 디렉터리 자체 보기 |