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 | 디렉터리 자체 보기 |
This work is licensed under
CC BY 4.0