본문 바로가기
Old Posts/Linux

[Linux] ls 명령어 사용법

by A6K 2022. 1. 29.

ls 명령어는 ‘list segments’의 약자로 가장 많이 사용되는 명령어 중 하나다. 아마 터미널을 열고 작업을 할 때, 뇌를 거치지 않고 반사적으로 튀어나오는 명령어 중 하나일 것이다. ls 명령어는 디렉토리에 포함되어 있는 파일이나 다른 디렉토리 같은 엔트리 정보를 조회하기 위해 사용한다.

ls 명령어에 인자를 주지 않으면 현재 작업 디렉토리에 있는 파일과 디렉토리의 리스트를 출력한다. 명령어 인자로 디렉토리나 파일의 경로를 넘겨주면 경로에 해당하는 디렉토리의 엔트리 혹은 파일의 정보를 출력한다.

ls 명령어의 결과 값은 기본적으로 알파벳 순으로 정렬되어 출력되며, 정렬과 관련된 옵션을 통해 정렬 순서를 변경할 수 있다.


ls 명령어 옵션

ls 명령어에 사용할 수 있는 옵션은 많지만 자주 사용하는 옵션은 별로 없다. 쉘 스크립트 작성시 참고해서 쓰면 된다.

옵션 긴 버전 설명
-a --all .을 포함한 경로 안의 모든 디렉토리 엔트리 출력
-A --almost-all .과 ..을 제외한 모든 디렉토리 엔트리 출력
  --author -l 옵션과 함께 사용해 각 파일의 author를 출력
-b --escape 비 알파벳 문자를 위한 C 스타일의 escape 출력
  --block-size=SIZE 지정한 SIZE 단위로 크기를 표현, 예) ‘—block-size=M’
-c   -lt 옵션과 함께 사용시 파일 상태의 마지막 변경 시간을 기준으로 정렬 및 출력, -l 옵션과 함께 사용시 이름을 ctime 출력, 기본적으로 ctime을 기준으로 정렬 (최신이 먼저 오도록)
-C   컬럼의 엔트리를 출력
  --color[=WHEN] 출력 내용을 색으로 구별 (WHEN에는 ‘never’, ‘always’, ‘auto’ 사용 가능)
-d --directory 디렉토리의 경로를 출력
-D --dired Emacs의 dired 모드를 위한 출력 생성
-f   정렬하지 않고, -aU 모드를 활성하고 -ls —color 옵션을 비활성화
-F --classify 엔트리에 지시자 (*/=>@
  --file-type -F, --classify와 유사하지만 * 문자는 제외
  --format=WORD 옵션 대신 워드 서식을 지정해서 출력 (across는 -x, commas는 -m, horizontal는 -x, long는 -l, single-column는 -1, verbose는 -l, vertical는 -C)
  --full-time ‘-l --time-style=full-iso’와 유사
-g   -l 옵션과 유사하지만 소유자 정보는 출력하지 않음
  --group-directories-first 그룹 디렉토리를 파일보다 먼저 출력
-G --no-group 길어질 경우 그룹 이름은 출력하지 않음
-h --human-readable -l 옵션과 사용하여 파일 사이즈를 사람이 읽을 수 있는 형태 (1K, 234M, 2G)로 출력
  --si -h와 비슷하지만 사이즈의 단위를 1024의 단위가 아닌 1000 단위로 구분
-H --dereference-command-line 심볼릭 링크를 따라가서 출력
  --hide=PATTERN PATTERN과 매칭되는 리스트를 숨김 (-a 옵션이나 -A 옵션이 우선함)
  --indicator-style=WORD 목록 이름에 WORD 스타일의 지시자를 추가 (none은 기본값, slash는 -p, file-type은 --file-type, classify는 -F)
-i --inode 각 파일의 인덱스 번호를 출력
-I --ignore=PATTERN 지정한 PATTERN에 매칭되는 목록은 출력하지 않음
-k --kibibytes --block-size=1K와 유사
-l   긴 리스팅 포맷을 사용
-L --dereference 심볼릭 링크의 정보를 따라가서 파일의 정보를 출력
-m   콤마로 구분된 목록 형식으로 출력
-n --numeric-uid-gid -l 옵션과 비슷하지만 숫자 형식의 사용자와 그룹 ID를 출력
-N --literal 원래의 이름 형식으로 출력, 컨트롤 문자를 처리하지 않음
-o   -l 옵션과 비슷하지만 그룹의 정보를 출력하지 않음
-p --indicator-style=slash 디렉토리에 슬래시(’/’) 문자 추가
-q --hide-control-chars 그래픽이 아닌 문자 대신 ?를 출력
-Q --quote-name 목록에 쌍 따옴표로 감싸서 출력
-r --reverse 역순으로 정렬
-R --recursive 하위 디렉토리를 재귀적(recursive)으로 모두 따라가면서 엔트리 출력
-s --size 각 파일이나 블럭에 할당된 크기를 출력
-S   파일의 크기를 기준으로 정렬
-t   수정된 시간을 기준으로 정렬
-T --tabsize=COLS 기본값 8 대신 지정한 COLS를 탭 간격으로 지정
-u   -lt 옵션과함께 사용하여 접근 시간을 기준으로 정렬, -l 옵션과 함께 사용하여 접근 시간을 출력하되 이름을 기준으로 정렬
-U   정렬하지 않음, 디렉토리 엔트리의 순서대로 출력
-w --width=COLS 현재 값 대신 스크린 너비를 지정
-x   컬럼의 기준 대신 라인의 기준으로 출력
-X   엔트리의 확장자를 기준으로 알파벳 순으로 정렬
-1   한 줄에 하나의 파일 정보를 출력
  --help 사용법 출력
  --version 버전 정보 출력

자주 사용하는 패턴

ls -al : 현재 디렉토리의 모든 내용을 리스트 형식으로 출력

ls -alt : 현재 디렉토리의 모든 내용을 시간 순으로 정렬해서 출력

ls -m : 엔트리들을 콤마로 구분

ls --tabsize=SIZE : 탭 사이즈를 변경해가며 출력

ls -l --color=never : 엔트리를 리스트 형식으로 출력하고 파일의 타입을 색으로 구분하지 않음


관련글

 

리눅스 명령어 사용법들

리눅스 명령어 사용법 ifconfig 네트워크 인터페이스 설정관련 ls 디렉토리 엔트리 정보 출력

hbase.tistory.com

 

댓글