댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
LINUX
2012.11.27 15:43
ls 명령어 옵션
조회 수 15161 댓글 1
출처: http://www.dal.kr/chair/wh/wh1102.html
11.2.파일 목록 명령어 ls 11.2.1.ls 명령어로 파일 목록 보기 ls 명령어는 파일 목록을 보여주는 명령어입니다. 명령어 방식의 운영체제에서 제일 먼저 배우는 명령은 디렉토리 안에 어떤 파일이 있나를 알아보는 명령입니다. 어떤 파일이 있는지 알아야 실행을 하거나 응용합니다. 리눅스 역시 디렉토리 안의 파일을 살펴보는 명령을 가장 많이 사용합니다. 디렉토리 안의 파일 목록을 알아보는 명령은 ls 명령입니다. [형식] ls [옵션] [옵션]... [경로명1] [경로명2] ... [옵션] -a 디렉토리 안에 있는 모든 파일과 디렉토리를 보여줍니다. all. -l 파일에 대한 정보를 자세하게 보여줍니다. 파일의 사용권한, 소유자, 그룹, 크기, 날짜 등을 자세하게 보여줍니다. list. --help ls 명령어에 대한 도움말을 출력합니다. [보기] ls ls -al ls --help ls는 가장 많이 쓰이는 명령어이기 때문에 옵션 종류가 많습니다. 옵션을 사용할 때는 - 기호를 앞에 붙이는데 여러 개 동시에 사용할 경우 옵션마다 붙이는 것이 아니고 제일 먼저 쓴 옵션 하나에만 - 기호를 붙입니다. ls 명령어는 옵션이 많지만 기본적인 몇 가지만 알아도 충분합니다.
**사진: 홈디렉토리에서 ls 명령을 입력한 결과 파일과 디렉토리 목록을 보여줍니다. **사진: 'ls /home3/hangul' 명령은 경로를 루트부터 지정했기 때문에 어디서나 지정된 디렉토리 내용을 표시합니
**사진: 홈디렉토리에서 ls -al 명령을 내리자 ls만 내릴 때보다 자세하게 목록을 표시합니다. **사진: ls -al bbs 명령을 내리면 현재 디렉토리 밑에 있는 bbs 디렉토리의 내용을 보여줍니다.
**사진: 'ls -al bbss'를 입력하자 이번에는 그런 파일이나 디렉토리가 없다고 표시됩니다.
'ls -al' 명령만 익혀두면 충분합니다. 이처럼 옵션 뒤에 보고 싶은 경로명을 적어주면 해당 경로의 파일 목록을 살펴볼 수 있습니다. 가장 흔하게 사용하는 명령은 'ls -al'입니다. 그리고 이 명령어 하나만 외워두면 충분합니다. 11.2.2. --help 옵션으로 도움말 보기 -- help 옵션을 매개변수로 붙이면 ls 명령어의 도움말을 볼 수 있습니다.
**사진: ls --help 명령을 내리자 나타나는 도움말. 화면을 넘어갑니다.
그러면 화면에 다음과 같은 도움말이 나타납니다. 그런데 도움말의 내용이 너무 많아 화면을 넘어갑니다. 이렇게 넘어가는 도움말을 한 화면씩 보는 방법은 나중에 다시 설명 드리겠습니다. 만약 도움말을 스크롤막대로 끌어내려서 보고 싶다면 텔넷 프로그램 차림에서 [터미널] - [기본설정]을 선택하고 버퍼 크기를 조정하기 바랍니다. 버퍼 크기를 크게 잡을수록 화면에 표시되는 문자의 양을 늘릴 수 있습니다. 사용법: ls [OPTION]... [FILE]... FILE에 대한 정보를 출력합니다(기본값은 현재디렉토리). -cftuSUX이나 --sort옵션이 지정되지 않으면 기본적으로 알파벳 순으로 정렬합니다. -a, --all .으로 시작하는 목록까지 모두 출력합니다 -A, --almost-all -a와 같지만 .과 ..은 출력하지 않습니다 -b, --escape 출력할 수 없는 문자는 8진수로 표기합니다 --block-size=SIZE SIZE 바이트 크기의 블럭을 사용합니다 -B, --ignore-backups ~으로 끝나는 목록은 출력하지 않습니다 -c 생성시간단위로 정렬합니다. -l옵션과 같이 쓰면 생성시간을 출력합니다 -C 열단위로 목록을 출력합니다 --color[=WHEN] 파일을 구분하기 위해 색을 쓸 것인지 조정합니다. WHEN은 `never', `always', 또는 `auto'입니다. -d, --directory 디렉토리의 내용 대신 디렉토리를 출력합니다 -D, --dired Emacs의 dired모드에 알맞는 출력을 합니다 -f 정렬하지 않습니다(-aU를 주고 -lst를 뺍니다). -F, --classify 각 목록을 구분하기 위한 문자를 뒤에 붙입니다 --format=WORD across -x, comma -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C --full-time 날짜와 시각을 자세히 출력합니다 -g (무시합니다) -G, --no-group 그룹정보 출력을 하지 않습니다 -h, --human-readable 크기를 사람이 알기 쉽게(1K, 234M, 2G등)표시합니다 -H, --si 비슷합니다만 1024배 대신 1000배를 사용합니다 --indicator-style=WORD WORD 스타일로 파일 구분을 해 줍니다. 가능한 값은: none (기본값), 종류 (-F), 파일형식 (-p) -i, --inode 각 파일의 i-node번호를 출력합니다 -I, --ignore=PATTERN 셸 PATTERN와 일치하는 목록은 출력하지 않습니다 -k, --kilobytes --block-size=1024와 같습니다 -l 긴 출력 포맷을 사용합니다 -L, --dereference 심볼릭 링크를 따라가 링크된 목록을 출력합니다 -m 행구분 없이 쉼표로 구분되는 목록 출력을 합니다 -n, --numeric-uid-gid 이름 대신 숫자로 된 UID와 GID를 출력합니다 -N, --literal 목록 이름을 그대로 출력합니다 (콘트롤 문자도 특별히 처리하지 않습니다) -o 그룹정보 없이 긴 출력 포맷을 사용합니다 -p, --file-type 각 목록을 구분하기 위한 문자(/=@|)를 뒤에 붙입니다 -q, --hide-control-chars 출력할 수 없는 문자 대신 ?을 출력합니다 --show-control-chars 출력할 수 없는 문자를 그대로 보여줍니다(기본값) -Q, --quote-name 목록 이름을 큰따옴표 안에 넣습니다 --quoting-style=WORD WORD의 인용 스타일을 사용합니다. 가능한 값은: literal, locale, shell, shell-always, c, escape -r, --reverse 정렬순서를 거꾸로 합니다 -R, --recursive 서브디렉토리까지 출력합니다 -s, --size 각 파일의 블록 크기를 출력합니다 -S 파일크기단위로 정렬합니다 --sort=WORD extension -X, none -U, size -S, time -t, version -v --time=WORD 변경시간 대신 시간을 WORD로 표시합니다: atime, access, use, ctime, status --sort=time이면 지정된 값이 정렬 기준입니다 -t 변경시간단위로 정렬합니다. -T, --tabsize=COLS 8대신 탭 크기를 COLS로 가정합니다 -u 최후접근시간에 따라 정렬합니다. -l과 함께 사용하면 접근시간을 보여줍니다 -U 정렬하지 않고 디렉토리의 순서대로 출력합니다 -v 버전에 따라 정렬합니다 -w, --width=COLS 현재 값 대신 화면폭을 정해준 값으로 가정합니다 -x 열단위보다는 행순으로 목록을 정렬합니다 -X 목록 확장에 의해 알파벳순으로 정렬합니다 -1 한 줄에 한 파일씩 출력합니다 --help 이 도움말을 표시하고 종료합니다 --version 버전 정보를 표시하고 종료합니다 기본적으로, 파일을 구분하기 위해 색상은 사용하지 않습니다. 이것은 --color=none을 사용하는 것과 같습니다. --color옵션을 부가적인 WHEN인수와 같이 사용하지 않으면 --color=always와 같습니다. --color=auto에서는 색상 코드는 표준 출력이 터미널(tty)에 연결되었을 때만 출력합니다 도움말 내용은 시스템에 따라서 조금씩 다릅니다. 이 도움말은 리눅스 종류나 버전마다 조금씩 다릅니다. 또한 도움말이 한글로 나온다는 보장도 없습니다. 어떤 시스템에서는 도움말이 영어로만 나올 수도 있습니다. 따라서 지금 이 책에서 예로 든 도움말은 제가 사용하는 웹호스팅 서버의 리눅스에만 해당하는 도움말입니다. 다른 종류의 리눅스로 서비스를 제공하는 경우에는 도움말의 내용도 조금 다르고 심지어 옵션의 종류가 달라지기도 합니다. 리눅스 종류와 버전에 따라 명령어의 옵션이나 도움말이 달라짐에 주의하기 바랍니다. 그렇지만 대개의 경우 리눅스 종류가 다르더라도 기본 명령어는 대부분 비슷하며 옵션 내용도 같습니다. 따라서 앞으로 여러분이 리눅스 명령을 사용하는 도중에 해당 명령의 의미를 잊거나 옵션 내용을 알고 싶다면 --help 옵션을 붙여서 도움말을 참고하기 바랍니다. 11.2.3.디렉토리 정보가 뜻하는 내용들 이해하기 'ls -al'만 알아도 파일 정보는 대부분 알 수 있습니다. 'ls -al' 또는 'ls -l' 명령어를 이용하면 파일 정보를 자세하게 출력해줍니다. 그런데 윈도만 사용하던 사람은 파일의 이름과 확장자, 날짜, 크기 정도는 이해하지만 그외 부분의 정보는 무슨 뜻인지 이해하기 어렵습니다. 가장 이해하기 어려운 부분이 왼 쪽에 표시되는 사용 권한과 사용자, 그룹에 대한 부분입니다. 또한 파일의 종류를 표시하는 기호의 의미도 잘 모릅니다. 각 부분의 의미에 대해서 알아보겠습니다. 제가 사용하는 홈페이지의 guide 디렉토리를 예로 들겠습니다. 이 디렉토리에서 다음과 같이 명령을 내렸습니다. [보기] ls -al 명령의 사용법 ls -al ![]() **사진: ls -al 명령의 출력 결과 그 결과 다음과 같은 내용이 화면에 표시됩니다. 파일이 많기 때문에 먼저 출력된 내용은 화면 위로 넘어간다는 사실을 염두에 두고 아래 내용을 보기 바랍니다. 합계 84 drwxr-xr-x 5 hangul hangul 4096 11월 30 15:04 ./ drwxr-xr-x 15 hangul hangul 4096 11월 29 22:25 ../ drwxr-xr-x 2 hangul hangul 4096 10월 29 00:45 book/ -rw-r--r-- 1 hangul hangul 12832 10월 19 23:03 book.html -rw-r--r-- 1 hangul hangul 17411 10월 14 16:41 kcch.html drwxr-xr-x 2 hangul hangul 4096 9월 4 2001 kjt/ -rw-r--r-- 1 hangul hangul 4439 10월 15 14:51 kjt.html drwxr-xr-x 2 hangul hangul 4096 9월 20 11:13 notice/ -rw-r--r-- 1 hangul hangul 9954 10월 19 22:52 sitemap.html 현재 제가 사용하는 웹호스팅 서버는 도움말이나 여러 가지 내용을 한글로 표시하지만 영문 리눅스를 사용하는 경우에는 영문으로 표시된다는 점을 기억하기 바랍니다. 파일 합계는 서브 디렉토리를 포함해서 보여줍니다. '합계 84'은 현재 디렉토리에 있는 파일이 84개라는 뜻입니다. 그런데 눈에 보이는 것은 몇 개 안되죠. 나머지 파일은 서브 디렉토리에 들어있습니다. 영문 리눅스라면 'total 84'이라고 영어로 파일 숫자를 표시될 겁니다. 목록 표시 구분 내용 살펴보기 다음 줄부터 파일 목록이 표시되는데 왼 쪽 부분부터 차례대로 살펴보겠습니다. [보기1] 목록 표시 구분 (1) (2) (3) (4) (5) (6) (7) (8) drwxr-xr-x 2 hangul hangul 4096 10월 29 00:45 book/ -rw-r--r-- 1 hangul hangul 12832 10월 19 23:03 book.html 제일 앞 부분에 디렉토리 구분과 파일 사용권한을 표시합니다. (1)번 부분은 10 글자로 이루어지는데 첫 글자는 파일과 디렉토리를 구분하는 기호로 사용하고 나머지 9 글자는 파일의 사용권한(permission)을 나타냅니다. 첫 번째 글자가 - 기호면 파일이고, d라고 적혀있으면 디렉토리입니다. 첫 번째 글자가 - 기호로 표시되었다면 파일이라는 뜻입니다. d라고 적혀있으면 디렉토리라는 뜻입니다. l이라고 적혀있으면 링크파일임을 뜻합니다. 따라서 [보기1]의 첫 번째 줄은 d자가 적혀 있기 때문에 디렉토리임을 알 수 있습니다. 즉 첫 번째 줄은 book라는 이름을 가진 디렉토리입니다. [보기1]의 두 번째 줄은 - 기호로 시작합니다. 따라서 두 번째 줄의 것은 파일입니다. book.html이라는 이름을 가진 파일입니다. 퍼미션은 퍼미션 설명 부분에서 자세하게 설명합니다. 퍼미션을 나타내는 9 글자는 rwxrwxrwx와 같은 형태로 표시됩니다. [보기1]의 첫 번째 줄은 'rwxr-xr-x'의 형태로 표시되었고 다음 줄은 '-rw-r--r--'와 같이 표시되었습니다. 이렇게 다르게 표시되는 이유는 두 파일에 대한 사용 권한이 다르기 때문입니다. 퍼미션에 대해서는 퍼미션 설명 부분에서 좀더 자세하게 설명 드리겠습니다. 퍼미션 오른 쪽의 (2)번 부분은 하드링크 번호로 링크된 파일의 숫자를 뜻합니다. 첫 번째 줄에 2라고 적혀 있으니 2개의 파일이 링크되었다는 것을 알 수 있습니다. 이 부분은 잘 모르셔도 상관 없습니다. 소유자 ID와 그룹 ID를 가진 사용자는 지정된 권한을 사용할 수 있습니다. (3)번 부분은 소유자의 ID를 보여줍니다. 'hangul'이라고 적혀 있으니 이 파일의 소유자는 hangul이라는 ID를 가진 사람이 됩니다. (4)번 부분은 소유자의 그룹 ID입니다. 이 그룹에 속한 사람은 사용권한의 두 번째 부분에서 설정된 권한을 이 파일에 대해서 행사할 수 있습니다. 두 번째도 hangul이라고 적혀 있기 때문에 hangul이라는 그룹만 이 파일을 사용할 수 있습니다. 현재 hangul이라는 그룹이 없는 상태이므로 결국 이 파일은 소유자인 hangul 만이 해당 권한을 행사할 수 있는 셈입니다. (5)번 부분은 파일의 크기를 바이트 단위로 표시한 것입니다. 첫 번째 줄에 4096이라고 표시되었는데 book 디렉토리의 크기가 4096Byte라는 뜻입니다. 두 번째 줄의 book.html 파일은 12832라고 적혀있습니다. 12382Byte의 크기를 가진다는 것을 알 수 있습니다. (6)번 부분은 파일이 만들어지거나 수정된 날짜입니다. (7)번 부분은 파일이 만들어지거나 수정된 시간을 표시합니다. 리눅스에서는 파일 이름이 제일 마지막에 표시됩니다. 맨 끝 부분의 (8) 부분이 파일 이름입니다. 도스와 윈도에서는 파일 이름이 제일 먼저 나오는데 리눅스에서는 제일 뒷부분에 표시되는 것이 특징입니다. 리눅스에서는 파일 이름이 깁니다. 윈도98에서 도스창을 띄우고 dir 명령어로 파일 이름을 살펴보면 8글자로 표시되지만 리눅스에서는 이보다 훨씬 긴 이름으로 표시됩니다. 리눅스는 파일 확장자로 파일 종류를 구분하지 않습니다. 그리고 리눅스에서는 확장자가 하는 일이 많지 않습니다. 그 이유는 리눅스에서는 확장자를 이용해 파일의 종류를 구분하지 않고 헤더 부분을 통해 구분하기 때문입니다. 그래서 도스처럼 실행 파일의 확장자가 com, exe로 정해진 상태가 아닙니다. 때문에 파일 확장자만 봐서는 실행 파일 여부를 알 수 없습니다. 실행 파일 여부를 알려면 * 기호가 붙었나로 확인합니다. 파일 확장자로 파일의 종류를 구분하지 않는다고 해서 파일 확장자의 중요성이 감소하는 것은 아닙니다. html이라는 확장자를 보고 HTML 문서 파일임을 알 수 있고, jpg라는 확장자를 보고 JPEG 그림 파일이라는 사실을 알 수 있습니다. 이런 파일의 확장자를 다른 확장자로 바꾼다면 혼란이 옵니다. 파일이냐 디렉토리냐 여부는 맨 첫 글자가 d냐 -냐로 구분하지만 파일 이름만 봐도 어느 정도 구분이 가능합니다. book/라고 써진 것을 보고 book 디렉토리라는 사실을 알 수 있습니다. 그리고 book.html이라는 표시를 통해 book.html 파일이라는 사실을 알 수 있습니다. 실행 파일은 이름 뒤에 * 표시가 붙습니다.
**사진: bbs.cgi 뒤에 * 기호가 붙었습니다.
앞서 설명에서 보지 못한 것이 있죠. 파일 이름 뒤에 붙은 * 기호입니다. * 기호는 이 파일이 실행 파일임을 나타냅니다. 리눅스는 파일 이름이나 확장자로 실행 파일 여부를 알 수 있는 것이 아니라 파일 이름에 붙은 * 기호를 통해 이 파일이 실행 파일임을 알 수 있습니다. 즉 bbs.cgi는 도스나 윈도에서 bbs.exe와 같은 일을 하는 실행 파일입니다. 11.2.4. ls 명령어의 매개변수와 옵션 사용법 명령어 뒤에 붙이는 옵션과 경로명을 매개변수라고 말합니다. ls 명령어의 옵션은 많습니다. 이들 옵션의 사용법을 모두 알아야 할 필요는 없습니다. 리눅스에는 많은 명령어가 있고 각 명령어마다 다양한 옵션이 있는데 이들 옵션을 자유롭게 사용하려면 많은 시간이 필요합니다. 때문에 초보자는 가장 많이 사용하는 명령어 몇 개와 가장 많이 사용하는 옵션 한 두 가지 정도만 외우면 됩니다. 그외 옵션은 필요할 때마다 도움말 옵션을 이용해 살펴보면 됩니다. ls 명령어 뒤에 붙이는 옵션과 경로명은 매개변수라고 부릅니다. [보기] ls -lF /home3/hangul ![]() 루트 디렉토리 밑에 있는 /home3/hangul 디렉토리에 있는 파일들의 정보를 자세하게 보여주는데, 파일의 형태가 어떤 것인지도 보여줍니다. 이처럼 매개변수 또는 옵션을 이용하면 도스 명령어를 세밀하게 제어할 수 있습니다. 예를 들어서 현재의 디렉토리가 일반적으로 현재 디렉토리의 파일 목록을 보여주는 가장 간단한 명령은 ls입니다. 그런데 현재 디렉토리에 파일이 많다면 순식간에 파일 목록을 보여주고 위로 올라가버립니다. 이럴 때는 매개변수를 덧붙여서 올라가는 화면을 한 화면씩 보여달라고 명령을 내릴 수 있습니다. more 명령과 함께 사용하면 한 화면씩 보여줍니다. 파일이 많은 곳에서 다음과 같이 명령을 내리면 한 화면씩 보여주면서 정지합니다. | 기호를 붙이고 more 명령어를 덧붙이면 되는데 | 기호는 파이프 기호입니다. [보기] ls -al | more ![]() 이렇게 하면 파일 목록을 한 화면 보여주고 사용자의 키 입력을 기다립니다. 파일목록을 봤으면 [Enter]키를 눌러줍니다. 그때마다 한 화면씩 올라갑니다. 찾을 파일을 매개변수로 붙여주면 파일 찾기가 쉬워집니다. 만약 현재 디렉토리에 파일이 천 개 정도 된다면 한 화면씩 멈추면서 찾는 일도 쉽지 않습니다. 천 개나 되는 파일을 어떻게 다 눈으로 확인하면서 찾습니까. 이럴 때는 찾고 싶은 파일만 매개변수로 사용하는 것이 좋습니다. 예를 들어 index.html 파일만 찾고 싶다면 다음과 같이 매개변수를 덧붙이면 됩니다. ls index.html ![]() ls 명령으로 표시되는 내용이 부족하다면 다음과 같이 사용합니다. ls -al index.html ![]() 이 명령어를 사용하면 ls 명령어가 index.html 파일만 찾아서 보여줍니다. 만약 index.html 파일이 없다면 아무 것도 보여주지 않겠죠. 이처럼 ls 명령 뒤에는 다양한 매개변수를 덧붙여 사용할 수 있습니다. 그리고 이들 매개변수의 조합에 따라서 리눅스 명령어는 더욱 더 강력하고 세밀한 명령어로 동작합니다. 11.2.5. ls 명령어에 와일드카드 사용하기 와일드카드를 이용하면 원하는 파일을 빨리 찾을 수 있습니다. 만약 찾고자 하는 파일 이름을 정확하게 기억하지 못하거나 특정한 특징을 가진 파일만 찾고 싶다면 어떻게 해야 할까요? 예를 들어서 확장자가 html인 파일의 목록만 보고 싶다거나 k로 시작하는 파일만 찾고 싶을 때가 있습니다. 이럴 때는 와일드카드를 이용합니다. 예를 들어 m으로 시작하는 파일만 찾고 싶다면 다음과 같이 명령을 줍니다. [보기1] ls m*.* ![]() **사진: ls m*.* 명령 실행 결과. 파일 이름이 m으로 시작되는 파일만 보여줍니다. 'm*.*'은 파일의 이름이 m으로 시작하고 그 뒤의 글자와 확장자는 어떤 것이라도 상관없다는 뜻입니다. 그러므로 이 명령어는 파일 이름의 첫 글자가 m으로 시작하는 시작하는 모든 파일을 보여주라는 명령어입니다. 확장자가 html인 파일을 찾고 싶다면 다음과 같이 사용하면 되겠죠. [보기2] ls *.html ![]() **사진: 'ls *.html' 명령을 내리면 확장자가 html인 파일만 표시합니다. 그렇다면 파일 이름이 m으로 시작하고 확장자가 html인 파일만 보고 싶다면? m*.html로 적으면 되겠죠. [보기3] ls m*.html ![]() ? 기호를 이용하면 파일의 글자 수까지 조정하면서 찾을 수 있습니다. ? 기호는 그 위치의 한 글자를 대신한다고 설명 했습니다. 예를 들어 파일 이름이 i로 시작하고 파일 이름이 다섯 글자인 파일을 표시하라는 명령은 다음과 같습니다. [보기4] ls i????.* ![]() 파일 이름이 main으로 시작하고 파일의 글자 수는 7 글자이며 확장자는 h로 시작하는 파일이라면 다음과 같이 검색하면 되겠죠. [보기5] ls main???.h* ![]()
Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
[ls - 디렉토리 목록만 표시하기]
평소 ls -d 로 하면 왜 . 만 출력될까 궁금했었는데...
ls -d 뒤에 */ 를 붙여주면 디렉토리명만 살펴볼 수 있다. (via Ubuntu Blog) 이외에도 아래와 같은 방법이 있다지만 아무래도 글자 수나 명령어의 대중성을 따져볼 때 손쉽게 사용 가능한 ls 명령에 나도 한 표!
$ ls -l | grep “^d”
$ tree -d -L 1