예제와 함께하는 30가지 필수 Linux ls 명령어
리눅스 터미널에서 자주 'dir'을 입력했다가 정작 올바른 명령어가 'ls'임을 깨닫고 지친 적이 있나요? 이 종합 가이드에서는 리눅스 시스템에서 파일과 디렉토리와 상호작용할 수 있는 관문인 'ls' 명령어의 사용법을 자세히 다룹니다. 실제 사례를 통해 다음을 할 수 있도록 도와드립니다:
- 파일과 디렉토리를 더 효율적으로 목록화, 정렬 및 필터링하세요.
- 복잡한 Linux 디렉토리 구조를 어렵지 않게 탐색하세요.
- Linux 파일 소유권 및 권한에 대한 더 나은 이해를 얻으세요.
- 당신의 기술을 리눅스 전문가 수준으로 끌어올리세요.
ls 명령어는 Linux에서 디렉토리의 내용을 나열할 때 사용됩니다. ls의 출력 결과를 사용자화하기 위해 여러 옵션들이 있습니다. 여기 초보자와 숙련된 Linux 사용자를 위한 가장 유용한 30가지 ls 명령어가 있습니다.
1. 기본 ls 명령어
$ ls
archive1.tar.gz archive3.tar.gz archive5.tar.gz dir2 file1.txt file3.txt file5.txt image2.jpg image4.jpg script1.sh script3.sh script5.sh
archive2.tar.gz archive4.tar.gz dir1 dir3 file2.txt file4.txt image1.jpg image3.jpg image5.jpg script2.sh script4.sh현재 디렉토리의 파일과 디렉토리를 나열합니다.
2. 자세한 정보와 함께 목록 -l
파일에 대한 권한, 소유자, 그룹, 링크 수, 크기, 수정 날짜 등 자세한 정보를 표시하려면 -l 옵션을 사용하세요.
$ ls -l
total 92
-rw-r--r-- 1 root root 565 Jul 20 19:26 archive1.tar.gz
-rw-r--r-- 1 root root 336 Jul 20 19:26 archive2.tar.gz
-rw-r--r-- 1 root root 669 Jul 20 19:26 archive3.tar.gz
-rw-r--r-- 1 root root 80 Jul 20 19:26 archive4.tar.gz
-rw-r--r-- 1 root root 457 Jul 20 19:26 archive5.tar.gz
drwxr-xr-x 5 root root 4096 Jul 20 19:26 dir1
drwxr-xr-x 5 root root 4096 Jul 20 19:26 dir2
drwxr-xr-x 5 root root 4096 Jul 20 19:26 dir3
-rw-r--r-- 1 root root 562 Jul 20 19:26 file1.txt
-rw-r--r-- 1 root root 280 Jul 20 19:26 file2.txt
-rw-r--r-- 1 root root 809 Jul 20 19:26 file3.txt
-rw-r--r-- 1 root root 479 Jul 20 19:26 file4.txt
-rw-r--r-- 1 root root 169 Jul 20 19:26 file5.txt
-rw-r--r-- 1 root root 626 Jul 20 19:26 image1.jpg
-rw-r--r-- 1 root root 461 Jul 20 19:26 image2.jpg
-rw-r--r-- 1 root root 461 Jul 20 19:26 image3.jpg
-rw-r--r-- 1 root root 841 Jul 20 19:26 image4.jpg
-rw-r--r-- 1 root root 33 Jul 20 19:26 image5.jpg
-rw-r--r-- 1 root root 835 Jul 20 19:26 script1.sh
-rw-r--r-- 1 root root 545 Jul 20 19:26 script2.sh
-rw-r--r-- 1 root root 409 Jul 20 19:26 script3.sh
-rw-r--r-- 1 root root 208 Jul 20 19:26 script4.sh
-rw-r--r-- 1 root root 943 Jul 20 19:26 script5.sh3. 모든 파일 나열 (숨김 파일 포함) -a
-a 명령 옵션을 사용하면 다음 예제에서 볼 수 있듯이 점(.)으로 시작하는 숨김 파일을 확인할 수 있습니다.
$ ls -a
. archive1.tar.gz archive3.tar.gz archive5.tar.gz dir2 file1.txt file3.txt file5.txt .hidden2.conf .hidden4.conf image1.jpg image3.jpg image5.jpg script2.sh script4.sh
.. archive2.tar.gz archive4.tar.gz dir1 dir3 file2.txt file4.txt .hidden1.conf .hidden3.conf .hidden5.conf image2.jpg image4.jpg script1.sh script3.sh script5.sh4. 사람이 읽기 쉬운 크기로 목록 -h
파일 크기를 사람이 읽을 수 있는 형식(예: KB, MB)으로 표시하고 싶다면 -h 명령어 옵션을 사용하세요.
$ ls -lh ~/goharbor-prepare.tar
-rw-r--r-- 1 root root 203M Jul 20 17:38 /root/goharbor-prepare.tar5. 수정 시간별 파일 목록 -t
수정 시간별로 파일을 정렬하며, -t를 사용하여 최신 파일이 먼저 표시되도록 합니다.
$ ls -lht ~/
total 835M
drwxr-xr-x 5 root root 4.0K Jul 20 19:27 linux-ls
drwxr-xr-x 3 root root 4.0K Jul 20 18:44 myapp
drwxr-xr-x 3 root root 4.0K Jul 20 18:10 myproject
drwxr-xr-x 2 root root 4.0K Jul 20 18:05 django-app
-rw-r--r-- 1 root root 203M Jul 20 17:38 goharbor-prepare.tar
drwxr-xr-x 3 root root 4.0K Jul 20 16:51 harbor
drwxr-xr-x 5 root root 4.0K Jul 20 00:02 quay
-rw-r--r-- 1 root root 629M Jun 6 09:39 harbor-offline-installer-v2.11.0.tgz
-rw-r--r-- 1 root root 12K Jun 6 09:39 harbor-online-installer-v2.11.0.tgz
-rw-r--r-- 1 root root 3.8M May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz
-rw-r--r-- 1 root root 65 May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz.sha2566. 역순
목록의 표시 순서를 반대로 바꾸려면 -r 명령 옵션을 사용하세요:
$ ls -lhr ~/
total 835M
-rw-r--r-- 1 root root 65 May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz.sha256
-rw-r--r-- 1 root root 3.8M May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz
drwxr-xr-x 5 root root 4.0K Jul 20 00:02 quay
drwxr-xr-x 3 root root 4.0K Jul 20 18:10 myproject
drwxr-xr-x 3 root root 4.0K Jul 20 18:44 myapp
drwxr-xr-x 5 root root 4.0K Jul 20 19:27 linux-ls
-rw-r--r-- 1 root root 12K Jun 6 09:39 harbor-online-installer-v2.11.0.tgz
-rw-r--r-- 1 root root 629M Jun 6 09:39 harbor-offline-installer-v2.11.0.tgz
drwxr-xr-x 3 root root 4.0K Jul 20 16:51 harbor
-rw-r--r-- 1 root root 203M Jul 20 17:38 goharbor-prepare.tar
drwxr-xr-x 2 root root 4.0K Jul 20 18:05 django-app7. 파일을 재귀적으로 나열
모든 파일과 디렉토리를 재귀적으로 나열합니다.
$ ls -R ~/
/root/quay:
config postgres storage
/root/quay/config:
config.yaml
/root/quay/postgres:
userdata8. 디렉토리만 나열
현재 디렉터리의 디렉터리만 나열하도록 출력 범위를 제한할 수 있습니다.
$ ls -d */
dir1/ dir2/ dir3/9. 특정 디렉토리의 상세 목록
다음 명령어를 실행하여 지정된 디렉토리의 파일에 대한 자세한 정보를 표시합니다.
ls -l /path/to/directory10. 와일드카드로 파일 목록 보기
특정 패턴(예: 모든 .txt 파일)과 일치하는 파일을 나열하려면 다음을 실행하세요:
$ ls *.txt
file1.txt file2.txt file3.txt file4.txt file5.txt
$ ls *.jpg
image1.jpg image2.jpg image3.jpg image4.jpg image5.jpg11. 파일 유형 표시와 함께 목록
각 항목에 문자를 추가하여 파일 유형을 표시합니다 (/는 디렉토리, *는 실행 파일).
ls -F12. 파일을 크기별로 나열
다음 명령어를 사용하여 파일을 크기 순으로, 가장 큰 파일이 먼저 오도록 정렬하세요.
ls -lS13. 파일을 유형별로 분류하기
이것은 -F와 비슷하게 작동하며, 파일을 분류할 때 표시자를 덧붙입니다.
ls --classify14. 디렉터리 트리 나열
다음 명령어를 사용하여 디렉토리 구조를 트리 형태로 확인하세요.
ls -R | grep ":$"15. 아이노드 번호가 있는 목록
-i 옵션을 사용하여 각 파일의 아이노드 번호 수를 확인하세요.
ls -i16. 파일을 열(column)로 나열하기
-C 명령어를 사용하여 항목을 열 단위로 나열합니다.
ls -C17. 접근 시간 기준으로 파일 목록 나열
마지막 접근 시간을 기준으로 파일을 정렬하고 표시하려면 -u를 사용하세요
$ ls -ltu
total 92
drwxr-xr-x 5 root root 4096 Jul 21 22:15 dir3
drwxr-xr-x 5 root root 4096 Jul 21 22:15 dir2
drwxr-xr-x 5 root root 4096 Jul 21 22:15 dir1
-rw-r--r-- 1 root root 457 Jul 20 19:26 archive5.tar.gz
-rw-r--r-- 1 root root 33 Jul 20 19:26 image5.jpg
-rw-r--r-- 1 root root 943 Jul 20 19:26 script5.sh
-rw-r--r-- 1 root root 169 Jul 20 19:26 file5.txt
-rw-r--r-- 1 root root 80 Jul 20 19:26 archive4.tar.gz
...18. 변경 시간으로 파일 목록 보기
출력을 정렬하고 파일 상태 정보의 마지막 변경 시간을 표시합니다.
ls -lc19. 색상 목록
가독성을 높이기 위해 색깔이 적용된 출력을 사용하려면 --color 명령 옵션을 사용하세요.
ls --color20. 이름만 나열
ls 명령어에 -1을 전달하면 파일을 한 줄에 하나씩 나열할 수 있습니다.
ls -121. 파일을 크기별로 역순으로 나열
파일을 크기별로 정렬할 수도 있으며, 가장 작은 파일이 먼저 표시됩니다.
$ ls -lhSr ~/
total 835M
-rw-r--r-- 1 root root 65 May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz.sha256
drwxr-xr-x 5 root root 4.0K Jul 20 00:02 quay
drwxr-xr-x 3 root root 4.0K Jul 20 18:10 myproject
drwxr-xr-x 3 root root 4.0K Jul 20 18:44 myapp
drwxr-xr-x 5 root root 4.0K Jul 20 19:27 linux-ls
drwxr-xr-x 3 root root 4.0K Jul 20 16:51 harbor
drwxr-xr-x 2 root root 4.0K Jul 20 18:05 django-app
-rw-r--r-- 1 root root 12K Jun 6 09:39 harbor-online-installer-v2.11.0.tgz
-rw-r--r-- 1 root root 3.8M May 15 17:19 starship-x86_64-unknown-linux-gnu.tar.gz
-rw-r--r-- 1 root root 203M Jul 20 17:38 goharbor-prepare.tar
-rw-r--r-- 1 root root 629M Jun 6 09:39 harbor-offline-installer-v2.11.0.tgz22. 시간 순으로 파일을 역순으로 나열하기
파일을 수정 시간 순으로 정렬하고, 가장 오래된 것을 첫 번째로 가져옵시다.
ls -ltr23. 확장자별 파일 목록
파일 확장자별로 알파벳 순으로 정렬
ls -X24. 컨텍스트와 함께 파일 목록 보기
--context를 사용하여 각 파일의 보안 컨텍스트를 확인하세요
ls --context25. 인용 스타일 목록
파일 이름에 따옴표가 포함된 출력 결과를 얻으세요.
ls -Q26. SI 단위를 사용하여 사람이 읽을 수 있는 형식으로 파일 목록 보기
파일 크기에 대한 SI 단위 사용 목록(예: 1K=1000).
ls -lh --si27. 확장자별로 파일을 역순으로 나열
파일을 확장자별로 역순으로 정렬하려면 아래 명령어를 실행하세요.
ls -Xr28. 파일 목록을 보고 디렉터리 이름만 표시
현재 디렉터리의 디렉터리만 표시합니다.
$ ls -d */
dir1/ dir2/ dir3/29. 파일을 알파벳 역순으로 나열
목록의 순서를 반대로 하여 파일을 역알파벳 순으로 표시하려면 -r 명령 옵션을 사용하세요:
ls -r30. 여러 옵션 결합
여러 옵션을 쉽게 조합할 수 있습니다: 예를 들어 모든 파일을 길게 표시하고, 사람이 읽기 쉬운 크기로 나타내며, 파일 유형을 분류하는 것입니다.
ls -alhF아래는 30가지 ls 명령어 사용 예제를 요약한 표입니다:
| 명령 | 설명 |
|---|---|
ls | 현재 디렉토리의 파일과 디렉토리를 나열합니다. |
ls -l | 권한, 링크 수, 소유자, 그룹, 크기, 수정 날짜를 포함한 자세한 정보를 표시합니다. |
ls -a | 숨김 파일(점으로 시작하는 파일)을 포함합니다. |
ls -lh | 파일 크기를 사람이 읽기 쉬운 형식(예: KB, MB)으로 표시합니다. |
ls -lt | 수정 시간 순으로 정렬하며, 최신 항목이 먼저 옵니다. |
ls -lr | 리스트의 순서를 반대로 바꿉니다. |
ls -R | 모든 파일과 디렉토리를 재귀적으로 나열합니다. |
ls -d */ | 현재 디렉토리에서 디렉토리만 나열합니다. |
ls -l /path/to/directory | 지정된 디렉토리의 파일에 대한 자세한 정보를 표시합니다. |
ls *.txt | 패턴과 일치하는 파일을 나열합니다(예: 모든 .txt 파일). |
ls -F | 각 항목에 문자를 추가하여 파일 유형을 표시합니다 (/는 디렉토리, *는 실행 파일). |
ls -lS | 파일을 크기 순으로 정렬하며, 가장 큰 것부터 시작합니다. |
ls --classify | -F와 동일하게, 파일을 표시기를 덧붙여 분류합니다. |
| `ls -R | grep ":$` |
ls -i | 각 파일의 아이노드 번호를 표시합니다. |
ls -C | 파일을 열로 나열합니다. |
ls -lu | 마지막 액세스 시간을 기준으로 정렬하고 표시합니다. |
ls -lc | 파일 상태 정보의 마지막 변경 시간을 기준으로 정렬하고 표시합니다. |
ls --color | 가독성을 높이기 위해 색상이 적용된 출력을 사용하도록 설정합니다. |
ls -1 | 파일을 한 줄에 하나씩 나열합니다. |
ls -lSr | 파일을 크기 순으로 정렬하며, 가장 작은 것부터 시작합니다. |
ls -ltr | 수정 시간을 기준으로 파일을 정렬하며, 가장 오래된 파일이 먼저 옵니다. |
ls -X | 파일을 확장자별로 정렬합니다. |
ls --context | 각 파일의 보안 컨텍스트를 표시합니다. |
ls -Q | 파일 이름을 따옴표로 감싼다. |
ls -lh --si | 파일 크기에 SI 단위를 사용합니다(예: 1K=1000). |
ls -Xr | 파일을 확장자 기준으로 역순 정렬합니다. |
ls -d */ | 현재 디렉터리의 디렉터리만 표시합니다. |
ls -r | 목록의 순서를 반대로 하여 파일을 알파벳 역순으로 표시합니다. |
ls -alhF | 여러 옵션을 결합: 모든 파일을 표시하고, 상세 형식으로, 사람이 읽기 쉬운 크기로, 파일 유형을 분류합니다. |
결론
이 기사에서는 예제와 함께 ls 명령어의 포괄적인 사용법을 제공했습니다. 일반적인 ls 명령어 옵션을 마스터하면 리눅스 파일 시스템을 쉽게 탐색하고 조작할 수 있습니다.
