Linux 명령어 ls
도스의 dir 명령어와 같은 명령어로 파일들을 정렬해주는 명령어이다.
ls명령어는 list directory contents에서 유래된 명령어로 해당 디렉토리 내에 있는 디렉토리 및 파일을 화면에 출력해줍니다.
소유권이나 만든 날짜, 용량 등을 확인하려면 ls 명령어 단독으로는 확인할 수 없기 때문에 ls -al과 같이 옵션을 사용한다.
간단하게 ls 명령어의 옵션을 간단히 알아보면 다음과 같다.
-a 디렉토리 안에 있는 모든 파일과 디렉토리를 보여준다. all
-l 파일에 대한 정보를 자세하게 보여준다. 사용자의 권한, 소유자 그룹, 크기, 날짜 등을 자세하게 보여준다. list
-h -l에서 지정한 크기 등을 사람이 읽기 쉽게 변환하여 보여준다.
이 경우 보통 파일의 대소문자 및 알파벳으로 정렬이 되어 출력된다. 이 경우에는 파일의 이름만 표시되기 때문에 세부 내용을 확인할 수가 없다. 그래서 -l 옵션을 같이 사용한다. ls -l와 같이 사용하면 된다.
opentabs$> ls -al
opentabs$> ls -al
total 120
drwxr-xr-x 26 root root 4096 8월 9 15:51 .
drwxr-xr-x 26 root root 4096 8월 9 15:51 ..
drwxrwxrwx. 4 503 504 4096 6월 30 13:43 DATA1
drwsrwsrwt 2 root root 4096 6월 30 14:27 DATA2
drwxr-xr-x 2 root root 4096 6월 29 14:54 bin
drwxr-xr-x 3 root root 4096 8월 9 15:51 boot
drwxrwxr-x 2 root root 4096 6월 29 14:43 cdrom
drwxr-xr-x 19 root root 4380 7월 12 15:22 dev
drwxr-xr-x 138 root root 12288 8월 19 05:34 etc
drwxr-xr-x 7 root root 4096 6월 30 09:22 home
lrwxrwxrwx 1 root root 32 8월 9 15:51 initrd.img -> boot/initrd.img-4.4.0-34-generic
lrwxrwxrwx 1 root root 32 7월 16 00:59 initrd.img.old -> boot/initrd.img-4.4.0-31-generic
drwxr-xr-x 22 root root 4096 6월 29 14:54 lib
drwxr-xr-x 2 root root 4096 4월 21 07:07 lib64
drwx------ 2 root root 16384 6월 29 07:33 lost+found
drwxr-xr-x 4 root root 4096 6월 29 15:20 media
drwxr-xr-x 2 root root 4096 4월 21 07:07 mnt
drwxr-xr-x 2 root root 4096 4월 21 07:07 opt
dr-xr-xr-x 258 root root 0 6월 29 16:24 proc
drwx------ 5 root root 4096 6월 29 15:27 root
drwxr-xr-x 31 root root 1040 8월 24 08:25 run
drwxr-xr-x 2 root root 12288 6월 29 20:50 sbin
drwxr-xr-x 2 root root 4096 4월 19 23:31 snap
drwxr-xr-x 2 root root 4096 4월 21 07:07 srv
dr-xr-xr-x 13 root root 0 6월 29 16:24 sys
drwxrwxrwt 11 root root 4096 8월 24 08:17 tmp
drwxr-xr-x 11 root root 4096 4월 21 07:13 usr
drwxr-xr-x 15 root root 4096 6월 30 09:02 var
lrwxrwxrwx 1 root root 29 8월 9 15:51 vmlinuz -> boot/vmlinuz-4.4.0-34-generic
lrwxrwxrwx 1 root root 29 7월 16 00:59 vmlinuz.old -> boot/vmlinuz-4.4.0-31-generic
목록 내용을 보면 일관적으로 내용을 볼 수가 있는데 보통 8~9 정도의 공백으로 분리된 내용을 볼 수 있다.
(1) (2)(3) (4) (5) (6) (7) (8)
drwxr-xr-x 2 root root 4096 6월 29 14:54 bin
자세히 살펴보면 (1)은 10글자로 이루어지는데 첫 글자는 d, l, – 처럼 이루어져 있다. l은 링크, -는 파일을 의미한다. 나머지 9자리는 파일 및 디렉토리의 퍼미션(권한)을 나타낸다. 퍼미션은 rwx, rwx, rwx의 조합인데 공개, 그룹, 권한의 경우와 각 경우별 read, write, execute의 세 가지 경우의 조합이다.
(2)는 하드링크 번호로 링크된 파일의 수를 의미한다. 2라고 쓰여 있으니 2개의 파일이 링크되어 있다. (3)과 (4)는 소유자 및 소유그룹의 이름을 나타내준다. 소유자가 누구인지 소유그룹이 누구인지 확인할 수 있다. (5)는 파일의 크기를 바이트 단위로 나타낸다. 만약 4096 이면 보통 디렉토리이다. 파일의 용량이 커지면 바이트 단위로 표시되기 때문에 해당 내용을 확인하기 어렵다. 그럴 때는 -h 옵션을 추가하면 4.2M, 3.3K와 같이 사람이 쉽게 읽을 수 있도록 변환해준다.
(6)과 (7)은 파일이 만들어진 날짜 및 시간을 나타낸다. 만약 파일이 수정이 되면 수정된 시간이다. (8)은 파일 및 디렉토리의 이름이다.
opentabs$> ls -alh
drwxrwxrwx. 4 503 504 4.0K 6월 30 13:43 DATA1
-h 옵션은 Mb,Gb와 같이 바이트 단위 용량에서 사람이 읽기 쉬운 형태로 변환하여 출력한다.
opentabs$> ls -al | more
drwxrwxrwx. 4 503 504 4.0K 6월 30 13:43 DATA1
보통 파일 정보를 상세하기 보기 위해서 ls -al 명령어를 사용하면 한 화면에 보이는 경우도 있지만 보통은 화면보다 많은 내용을 출력하는 경우가 많다. 이럴 경우 화면에서 정보를 놓칠 수 있기 때문에 more를 같이 사용하면 한 화면에 한번씩 해당 내용을 보면서 내용을 확인하면 된다.
opentabs$> ls -alh
파일 이름을 대충 알고 있다면 와일드카드를 사용하면 된다. 이 경우에는 m으로 시작하는 모든 종류의 파일을 찾아서 정보를 알려준다. 즉 m.html make.txt 등과 같이 정규표현식에 해당하는 모든 파일을 찾아 볼 수 있다.
opentabs$> ls m*.*
파일 이름을 대충 알고 있다면 와일드카드를 사용하면 된다. 이 경우에는 m으로 시작하는 모든 종류의 파일을 찾아서 정보를 알려준다. 즉 m.html make.txt 등과 같이 정규표현식에 해당하는 모든 파일을 찾아 볼 수 있다.
opentabs$> ls *.txt
특히 분석 등 특수 목적의 경우에는 특정 확장자만 가진 파일을 봐야한다. 즉 .seq, .fasta, *.gz 등 과 같이 압축파일만, 텍스트 파일만, 서열 파일만 봐야하느 경우 위의 경우 처럼 사용하면된다.
opentabs$> ls i???.*
또 파일의 이름 중 특정 길이를 알고 있다면 이과 같이 사용한다 i로 시작하는 네 글자 파일을 찾아 정보를 알려준다. 만약 * 대신에 확장자를 입력하면 해당 확장자 및 길이의 파일만 찾을 수 있다.
ls는 가장 많이 쓰이는 명령어이기 때문에 옵션 종류가 가장 많은 것 중에 하나이다. 옵션을 사용할 때는 -를 붙여서 사용하는데 여러개를 동시에 사용할 경우에는 옵션마다 붙이는게 아니고 제일 먼저 쓴 옵션에 하나에만 -기호를 붙이면 된다.
옵션 #
-R (recursive) : 지정한 디렉토리 아래에 있는 하부디렉토리와 파일들을 모두 포함하여 출력한다.(하위경로와 그 안에 있는 모든 파일도 나열)
-d : 지정 디렉토리 내에 있는 파일을 제외한 디렉토리 목록만 출력한다.
-r (descending) : 출력 결과 정렬. 출력결과를 정렬할 때 내림차순으로 정렬한다.
-S : 파일 사이즈 정렬. 파일사이즈가 가장 큰 것부터 순서대로 나열한다.
-l : 파일들을 나열할때 자세히 출력한다.
-a (all) : 경로안의 모든 파일을 나열한다.(숨김파일도 포함)
-h (humanize) : 파일사이즈를 용량단위(Mb,Gb)를 붙여서 출력해 준다.
-n : 파일의 소유자와 소유그룹을 표기할때 숫자로 UID, GID로 출력한다.
-U : 디스크의 저장순서대로 파일을 나열한다.
-i : 각 파일들의 색인번호(inode)를 각 행의 맨 앞에 출력한다.
-1(숫자) : 한 줄에 한 파일씩만 나열한다.
-X : 확장자별로 정열하여 나열한다.
-F : 파일의 종류별로 파일의 끝에 특수문자를 표시한다.
일반파일 : 아무표시없음
실행파일 : *
디렉토리: /
심볼릭링크: @
FIFO파일 : |
소켓파일: =)
Linux ls
명령어
1. 기본 사용법
ls
현재 디렉토리의 파일과 디렉토리를 나열합니다.
2. 자세한 정보 출력
ls -l
파일의 자세한 정보를 포함한 목록(권한, 소유자, 파일 크기 등)을 출력합니다.
3. 숨김 파일 표시
ls -a
숨김 파일(파일 이름이 .
로 시작하는 파일)을 포함하여 모든 파일을 출력합니다.
4. 디렉토리 내 파일 개수 출력
ls -l | wc -l
디렉토리 내 파일의 개수를 출력합니다.
5. 파일 크기를 읽기 쉬운 형식으로 표시
ls -lh
파일 크기를 사람이 읽기 쉬운 형식(예: KB, MB)으로 출력합니다.
6. 최신 파일 정렬
ls -lt
파일을 수정 날짜를 기준으로 최신 파일부터 정렬하여 출력합니다.
7. 특정 확장자 파일만 출력
ls *.txt
지정한 확장자(예: .txt
) 파일만 나열합니다.
예제 코드
# 기본 파일 목록 출력
ls
# 자세한 정보 출력
ls -l
# 숨김 파일 표시
ls -a
# 디렉토리 내 파일 개수 출력
ls -l | wc -l
# 파일 크기 표시
ls -lh
# 최신 파일 정렬
ls -lt
# 특정 확장자 파일만 표시
ls *.txt
No responses yet