강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : 파일과 디렉토리 리스팅하는 ls 사용법

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 파일과 디렉토리 리스팅하는 ls 사용법

 

 

ls

 

ls 명령을 사용하여 파일과 디렉토리의 리스트를 볼 수 있다.

 

 

 

이 명령어를 사용해서 파일의 종류, 파일의 링크 상태, 파일의 크기, 파일이 만들어진 시기 등을 체크할 수 있어서 관리자가 파일에 대한 정보를 알아보는데 도움이 된다.

 

 

 

1) 개요

 

 

 

 

ls [OPTION]... [FILE]...

ls [-abcdfgiklmnpqrstuxABCFGLNQRSUX1] [-w cols] [-T cols] [-I pattern] [--all] [--escape] [--directory] [--inode] [--kilobytes] [--numeric-uid-gid] [--no-group] [--hide-control-chars] [--reverse] [--size] [--width=cols] [--tabsize=cols] [--almost-all] [--ignore-backups] [--classify] [--file-type] [--full-time] [--ignore=pattern] [--derefer-ence] [--literal] [--quote-name] [--recursive] [--sort={none,time,size,extension}] [--format={long,verbose,com-mas,across,vertical,single-column}] [--time={atime,access,use,ctime,status}] [--help] [--version] [--color[={yes,no,tty}]] [--colour[={yes,no,tty}]] [name...]

 

 

 

 

 

 

2) 옵션

 

옵션

설명

-a, --all

경로안의 모든 파일을 나열한다.

 

 

 

‘.’으로 시작하는 파일들도 포함된다.

 

 

 

 

-b, --escape

알파벳 형식을 사용하는 파일 이름안에서 그래픽 문자가 아닌 문자들을 사용한다.

 

 

 

C와 같이 여덟 가지 역슬래시 문자(‘\’)와 함께 오는 문자들을 사용한다.

 

 

 

 

-c, --time=ctime, --time=status

파일 최근 변경 시간에 따라 정열해서 보여준다.

 

 

 

자세한 나열(-l 옵션)이면, 그 파일의 최근 변경 시간을 보여준다.

 

 

 

 

-d, --directory

경로안의 내용을 나열하지 않고, 그 경로를 보여준다(이것은 쉘스크립트에서 유용하게 쓰인다).

-f

경로 내용을 정렬하지 않는다: 이것은 디스크에 저장된 순으로 보여준다.

 

 

 

-a-U 옵션과 같은 의미이며, -l, -s, -t 옵션과 반대의 의미이다.

 

 

 

 

--full-time

시간을 간략히 표시하지 않고, 모두 보여 준다.

 

 

 

 

-g

무시: 유닉스 호환을 위해서 있음.

-h, --human-readable

-l 옵션과 함께 사용되어 인간이 읽기 용이한 형식으로 크기(예를 들어 1K, 234M, 2G)를 출력한다.

 

 

 

 

-i, --inode

파일 왼쪽에 inode를 보여준다.

 

 

 

 

-k, --kilobytes

파일 크기가 나열되면, kb 단위로 보여준다.

 

 

 

이 옵션은 POSIXLY_CORRECT 환경 변수를 무시한다.

 

 

 

 

-l, --format=long, --format=verbose

파일 나열에 있어, 파일 형태, 사용권한, 하드링크 번호, 소유자 이름, 그룹 이름, 파일 크기, 시간(따로 지정하지 않으면 파일이 만들어진 날짜다)을 자세하게 나열한다.

 

 

 

시간은 여섯 달 이전 것이면 시간이 생략되고 파일의 연도가 포함된다.

 

 

 

 

-m, --format=commas

파일을 가로로 나열한다.

 

 

 

가로로 나열할 수 있는 만큼 최대한 나열한다.

 

 

 

 

-n, --numeric-uid-gid

이름의 나열에서 UID,GID 번호를 사용한다.

 

 

 

 

-p

파일 형태를 지시하는 문자를 각 파일에 추가한다.

 

 

 

 

-q, --hide-control-chars

파일 이름에 그래픽 문자가 아닌 것이 있으면, ‘?’로 표시한다.

 

 

 

 

-r, --reverse

정렬 순서를 역순(내림차순)으로 한다.

 

 

 

 

-s, --size

파일 크기를 1Kb 단위로 나타낸다.

 

 

 

POSIXLY_CORRECT 환경 변수가 지정되면, 512b 단위로 지정된다.

 

 

 

 

-t, --sort=time

파일 시간 순으로 정열한다.

 

 

 

최근 파일이 제일 먼저.

-u, --time=atime, --time=access, --time=use

파일 사용 시간 순으로 정렬한다.

 

 

 

자세한 나열이면, 시간 표시는 만들어진 날짜 대신, 사용된 날짜를 보여준다.

 

 

 

 

-x, --format=across, --format=horizontal

정렬 방식을 가로로 한다.

 

 

 

 

-A, --almost-all

‘.’, ‘..’ 경로를 제외하고 디렉토리안의 모든 파일을 나열한다.

 

 

 

 

-B, --ignore-backups

파일 끝이 ‘~’인 파일은 목록 나열에서 제외된다.

 

 

 

 

-C, --format=vertical

정렬 방식을 세로로 한다.

 

 

 

 

-D, --dired

Emacsdired 모드로 설계된 값을 출력을 한다.

 

 

 

 

-F, --classify

파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.

 

 

 

일반적으로 실행 파일은 "*", 경로는 "/", 심블릭 링크는 "@", FIFO"|", 소켓은 "=", 일반적인 파일은 없다.

 

 

 

 

-G, --no-group

자세한 목록 나열에서 group 정보를 제외한다.

 

 

 

 

-L, --dereference

심블릭 링크 파일들을 그냥 파일로 보여준다.

 

 

 

 

-N, --literal

이름이 영문이 아닌 경우, C에서 사용하는 역슬래쉬 문자(‘\’)와 함께 사용하는 표기 대신 그대로 출력한다.

 

 

 

 

-Q, --quote-name

-N 옵션과 반대.

-R, --recursive

하위 경로와 그 안에 있는 모든 파일들도 나열한다.

 

 

 

 

-S, --sort=size

파일 크기가 가장 큰 것부터 정렬해서 나열한다.

 

 

 

 

-U, --sort=none

정렬을 하지 않고, 디스크에 저장된 순서대로 보여준다.

 

 

 

이 옵션은 f 옵션을 사용할 수 없다.

 

 

 

유닉스용 ls -f-a 옵션은 가능하나, -l, -s, -t 옵션이 불가능하기 때문이다.

 

 

 

 

-X, --sort=extension

파일 확장자 순으로 정렬한다.

 

 

 

확장자가 없는 파일이 제일 먼저 나열된다.

 

 

 

 

-1, --format=single-column

한 줄에 한 파일씩 나열.

-w, --width cols

길이를 값으로 지정한다.

 

 

 

기본적으로는 한 화면의 가로 값이 된다.

 

 

 

또한 COLUMNS 환경 변수 값으로 지정할 수 있다.

 

 

 

초기값은 80이다.

 

 

 

 

-T, --tabsize cols

탭이 사용될 때, cols 값으로 지정한다.

 

 

 

초기값은 8이다.

 

 

 

0으로 지정되면 탭 문자는 무시된다.

 

 

 

 

-I, --ignore pattern

패턴(pattern)으로 지정된 파일들은 목록에서 제외된다.

 

 

 

이때, 명령 행에서 그 파일이 지정되면 물론 나열된다.

 

 

 

 

--author

-l 과 함께 사용되어 각 파일의 저자를 출력한다.

 

 

 

 

--color, --colour, --color=yes, --colour=yes

파일의 형태에 따라 그 파일의 색깔을 다르게 보여주는 기능을 한다.

 

 

 

자세한 이야기는 아래 DISPLAY COLORIZATION 부분을 참조한다.

 

 

 

 

--color=tty, --colour=tty

--color 옵션과 같으나, 단지 표준 출력에서만 색상을 사용한다.

 

 

 

이 옵션은 칼라 제어 코드를 지원하지 않는 보기 프로그램을 사용하는 쉘스크립트나, 명령행 사용에서 아주 유용하게 쓰인다.

 

 

 

 

--color=no, --colour=no

색상을 사용하지 않는다.

 

 

 

이것이 초기값이다.

 

 

 

이 옵션이 색상 사용을 이미 하고 있다면, 이 값을 무시한다.

 

 

 

--help

도움말을 보여주고 마친다.

 

 

 

 

--version

버전 정보를 보여주고 마친다.

 

 

 

 

 

 

 

3) 설명

 

별 다른 옵션을 주지 않고 단순히 ls만 입력하고 실행시킬 경우 다음과 같은 화면을 볼 수 있다.

 

 

 

현재 디렉토리에 있는 “.파일명”(숨김 파일)을 제외한 모든 파일(또는 디렉토리)의 이름이 리스트되는 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

$ ls

Desktop Mail readme.txt

$ ls readme.txt

readme.txt

 

 

 

 

 

 

 

-a

 

-a 옵션을 이용하면 현재 나타나지 않는 숨김 파일(Hidden File)을 포함한 모든 파일의 리스트를 볼 수 있다.

 

 

 

유닉스 시스템에서 히든 파일이란 일반적인 ls 로는 보이지 않는 감춰진 파일을 말하는 것으로, 파일의 이름 앞에 .(피리어드)가 붙으면 숨김 파일로 간주된다.

 

 

 

 

 

 

 

 

 

$ ls -a

. .Xdefaults .bash_logout .bashrc .kderc Desktop readme.txt

.. .bash_history .bash_profile .kde .screenrc Mail

 

 

 

 

 

 

 

-d

 

-d 옵션을 이용하면 디렉토리의 이름이 있는 경우 해당 디렉토리의 내용을 보이지 않고, 이름을 보인다.

 

 

 

다음은 Desktop이라는 디렉토리에 대해서 ls 명령을 적용한 예이다.

 

 

 

위의 예는 디렉토리 내의 파일들이 출력되고, 아래의 예는 디렉토리의 이름이 출력되는 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

$ ls Desktop

fdisk.zip superblock.txt

$ ls -d Desktop

Desktop

 

 

 

 

 

 

 

-l

 

-l 옵션을 이용하면 파일의 사이즈, 사용 권한과 같은 상세한 정보를 얻을 수 있다.

 

 

 

 

 

 

 

 

$ ls -l

total 12

drwxr-xr-x 5 tester tester 4096 Jan 28 09:57 Desktop

drwx------ 2 tester tester 4096 Jan 28 09:57 Mail

-rw-rw-r-- 1 tester tester 198 Jan 28 11:06 readme.txt

 

 

 

 

 

 

 

-F

 

-F 옵션을 붙이면 파일의 속성을 파악할 수 있다.

 

 

 

일반 파일은 아무런 변화 없이 출력되고, 디렉토리는 /가 붙고 실행 파일인 경우 *라 붙어서 출력된다.

 

 

 

foo 라는 파일은 실행 파일이고 *라 붙어 있음을 확인할 수 있다.

 

 

 

마찬가지로 Mail은 디렉토리라는 것을 / 문자로 나타내고 있다.

 

 

 

이에 대해 심볼릭 링크의 경우 파일명 뒤에 @이 붙게 된다.

 

 

 

 

 

 

 

 

 

$ ls -F

Desktop/ Mail/ foo* readme.txt

 

 

 

 

 

 

 

 

옵션의 복합

 

ls 명령에서의 옵션들은 하나만 쓰일 수도, 여러 개가 같이 쓰일 수도 있다.

 

 

 

ls lF * 와 같은 형식으로 쓸 수 있다.

 

 

 

이와 같이 옵션을 지정하는 방식은 유닉스 상의 다른 유틸리티에도 공통적으로 사용된다.

 

 

 

 

 

 

 

 

 

$ ls -al

합계 43876

drwx--x--x 7 freekgb freekgb 795 65 21:33 ./

drwxr-xr-x 23 root root 462 326 16:43 ../

-rw------- 1 freekgb freekgb 208 64 18:42 .Xauthority

-rw-rw-r-- 1 freekgb freekgb 0 105 2000 .addressbook

-rw------- 1 freekgb freekgb 2285 105 2000 .addressbook.lu

-rw------- 1 freekgb freekgb 9625 66 18:15 .bash_history

... 중략 ...

drwx------ 2 freekgb freekgb 124 64 18:45 mail/

-rw------- 1 freekgb freekgb 39210894 64 18:45 mbox

 

 

 

 

 

 

 

한편, dirvdir 명령은 ls 명령의 심볼릭 파일로 그 출력 양식을 다르게 보여주는 프로그램들이다.

 

 

 

인자로써 파일 이름이나 경로 이름이 사용된다.

 

 

 

경로의 내용은 초기값으로 알파뱃 순으로 나열된다.

 

 

 

ls의 경우에 출력이 표준 출력(터미널 화면)이면 세로로 정렬된 것이 가로로 나열되고, 다른 방식의 출력이면 한 줄에 하나씩 나열된다.

 

 

 

dir의 경우는 초기값은 ls와 같지만, 모든 출력에서 세로로 정렬해서 가로로 나열한다

 

(다른 방식의 출력에서도 항상 같다). vdir의 경우는 초기값으로 상세 내용의 목록을 나열한다.

 

 

 

4) DISPLAY COLORIZATION

 

 

위 옵션들 중에서 --color 옵션을 사용할 때, 이 버전의 ls 명령은 파일 이름이나, 파일 형태에 따라 파일의 색상별로 나열할 수 있다.

 

 

 

이 칼라화는 초기값으로 파일 형태에 따라서만 사용된다.

 

 

 

 

색상 지정을 위해 사용되는 코드는 ISO 6429(ANSI)이다.

 

 

 

이런 초기 색상 지정은 LS_COLORS (또는 LS_COLOURS) 환경 변수 지정으로 바꿀 수 있다.

 

 

 

이 변수들의 형식은 termcap(5) 파일 형식의 방식을 사용한다.

 

 

 

 

 

각 항목은 ":"으로 하며, 각 항목은 "xx=문자열"로 한다(예를 들어 LS_COLORS='di=32:ln= 36:pi=31'). xx에는 두개의 문자가 오는데, 여기서 사용할 수 있는 문자는 다음과 같다.

 

 

 

 

 

문자

ISO 6429 코드

적용 대상

no

0

파일 이름이 아닌 일반 텍스트

fi

0

일반 파일

di

32

경로 및 디렉토리

ln

36

심블릭 링크

pi

31

FIFO(파이프)

so

33

소켓

bd

44;37

블럭 장치

cd

44;37

캐릭터 장치

ex

35

실행 파일

mi

(없음)

잃어버린 파일 (초기값은 fi)

or

(없음)

심블릭 링크 대상이 없는 파일(초기값은 ln)

lc

\e[

왼쪽 코드

rc

m

오른쪽 코드

ec

(없음)

마침 코드 (lc+no+rc로 바뀜)

 

색상을 바꿀 경우는 그 해당 변수만 바꾸면 된다.

 

 

 

 

파일 이름은 파일의 확장자에 따라 색상을 지정할 수 있다.

 

 

 

LS_COLORS 환경 변수에 포함하면 되고, 그 사용법은 위와 같다.

 

 

 

문법은 "*ext=문자열"이다.

 

 

 

예를 들어 C 소스 파일을 파란색으로 지정하려면, "*.c=34"이다.

 

 

 

 

제어 문자는 C에서와 갈이 ‘\’문자로 시작하는 문자를 사용하거나 stty와 같이 ‘^’문자로 시작하는 문자를 사용할 수 있다.

 

 

 

C 스타일일 경우는 \eEsc, \_ 공백문자, \? Delete 이다.

 

 

 

추가로, \ escape 문자는 \, ^, :, =의 초기 처리 방식을 무시하는데 사용될 수 있다.

 

 

 

 

 

각 파일은 <lc> <색상값> <rc> <파일이름> <ec> 형태로 지정된다.

 

 

 

만약 <ec> 코드를 지정하지 않으면, <lc> <no> <rc> 가 대치된다.

 

 

 

이 방법은 보다 많은 변환을 하지만 일반적인 방법은 아니다.

 

 

 

왼쪽, 오른쪽, 마지막 코드는 일반적인 ISO 6429 코드를 지원하지 않는 터미널을 위한 값으로 특별한 경우가 아니면 사용할 필요가 없다.

 

 

 

 

 

ISO 6429 코드일 경우 사용될 수 있는 코드값은 다음과 같다(물론 lc, rc, ec 값은 제외된다).

 

코드

색상

0

초기 색상으로 다시 돌린다.

1

강조색

4

밑줄

5

깜빡이는 글자

30

까만색 전경

31

빨강 전경

32

녹색 전경

33

노랑(또는 갈색) 전경

34

파랑 전경

35

보라 전경

36

청록색 전경

37

흰색(또는 회색) 전경

40

까만색 배경

41

빨강 배경

42

녹색 배경

43

노랭(또는 갈색) 배경

44

파랑 배경

45

보라 배경

46

청록색 배경

47

흰색(또는 회색) 배경

 

 

 

 

모든 명령이 모든 시스템이나 디스플레이 장치에서 제대로 동작하는 것은 아니다.

 

 

 

어떤 터미널은 초기 마지막코드(ec)가 인식되지 않을 수 있다.

 

 

 

만약 색상을 사용했다면, no, fi 값을 0으로 지정해 초기값으로 되돌려 놓아야 한다.

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,909 개
  • 현재 접속자 :  214 명