-
ls리눅스 엔지니어링 기술/5. 명령어 2024. 9. 20. 01:22
안녕하세요, MJ 입니다.
ls 명령어에 대해 알아보겠습니다.
ls 명령어는 파일의 목록을 확인하는 명령어 입니다.
Help 를 보면
$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE with -l, scale sizes by SIZE when printing them;
e.g., '--block-size=M'; see SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
change of file status information);
with -l: show ctime and sort by name;
otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN] color the output WHEN; more info below
-d, --directory list directories themselves, not their contents
-D, --dired generate output designed for Emacs' dired mode
-f list all entries in directory order
-F, --classify[=WHEN] append indicator (one of */=>@|) to entries WHEN
--file-type likewise, except do not append '*'
--format=WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time like -l --time-style=full-iso
-g like -l, but do not list owner
--group-directories-first
group directories before files;
can be augmented with a --sort option, but any
use of --sort=none (-U) disables grouping
-G, --no-group in a long listing, don't print group names
-h, --human-readable with -l and -s, print sizes like 1K 234M 2G etc.
--si likewise, but use powers of 1000 not 1024
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir
follow each command line symbolic link
that points to a directory
--hide=PATTERN do not list implied entries matching shell PATTERN
(overridden by -a or -A)
--hyperlink[=WHEN] hyperlink file names WHEN
--indicator-style=WORD
append indicator with style WORD to entry names:
none (default), slash (-p),
file-type (--file-type), classify (-F)
-i, --inode print the index number of each file
-I, --ignore=PATTERN do not list implied entries matching shell PATTERN
-k, --kibibytes default to 1024-byte blocks for file system usage;
used only with -s and per directory totals
-l use a long listing format
-L, --dereference when showing file information for a symbolic
link, show information for the file the link
references rather than for the link itself
-m fill width with a comma separated list of entries
-n, --numeric-uid-gid like -l, but list numeric user and group IDs
-N, --literal print entry names without quoting
-o like -l, but do not list group information
-p, --indicator-style=slash
append / indicator to directories
-q, --hide-control-chars print ? instead of nongraphic characters
--show-control-chars show nongraphic characters as-is (the default,
unless program is 'ls' and output is a terminal)
-Q, --quote-name enclose entry names in double quotes
--quoting-style=WORD use quoting style WORD for entry names:
literal, locale, shell, shell-always,
shell-escape, shell-escape-always, c, escape
(overrides QUOTING_STYLE environment variable)
-r, --reverse reverse order while sorting
-R, --recursive list subdirectories recursively
-s, --size print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
time (-t), version (-v), extension (-X), width
--time=WORD select which timestamp used to display or sort;
access time (-u): atime, access, use;
metadata change time (-c): ctime, status;
modified time (default): mtime, modification;
birth time: birth, creation;
with -l, WORD determines which time to show;
with --sort=time, sort by WORD (newest first)
--time-style=TIME_STYLE
time/date format with -l; see TIME_STYLE below
-t sort by time, newest first; see --time
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
-u with -lt: sort by, and show, access time;
with -l: show access time and sort by name;
otherwise: sort by access time, newest first
-U do not sort; list entries in directory order
-v natural sort of (version) numbers within text
-w, --width=COLS set output width to COLS. 0 means no limit
-x list entries by lines instead of by columns
-X sort alphabetically by entry extension
-Z, --context print any security context of each file
--zero end each output line with NUL, not newline
-1 list one file per line
--help display this help and exit
--version output version information and exit
The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000).
Binary prefixes can be used, too: KiB=K, MiB=M, and so on.
The TIME_STYLE argument can be full-iso, long-iso, iso, locale, or +FORMAT.
FORMAT is interpreted like in date(1). If FORMAT is FORMAT1<newline>FORMAT2,
then FORMAT1 applies to non-recent files and FORMAT2 to recent files.
TIME_STYLE prefixed with 'posix-' takes effect only outside the POSIX locale.
Also the TIME_STYLE environment variable sets the default style to use.
The WHEN argument defaults to 'always' and can also be 'auto' or 'never'.
Using color to distinguish file types is disabled both by default and
with --color=never. With --color=auto, ls emits color codes only when
standard output is connected to a terminal. The LS_COLORS environment
variable can change the settings. Use the dircolors(1) command to set it.
Exit status:
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/ls>
or available locally via: info '(coreutils) ls invocation'
$각 옵션에 대해 설명이 상세하게 나와있는데
이것을 우리가 모두 외우고 사용할 수는 없습니다.
간략하게 자주 사용되는 옵션에 대해 알아보겠습니다.(적지는 않습니다.)
1. 간략하게 파일 목록 보기
: 아무런 옵션을 주지 않고 명령어 ls 만 수행합니다.>> 단순히 파일의 유무를 확인하고자 할 때 자주 사용됩니다.
2. 상세목록 보기
: ls -l 옵션을 추가하여 리스트형식으로 조회가 됩니다.>> 이렇게 보면, 각 라인마다 하나의 파일의 정보가 출력되고, 출력된 정보에는 파일의 종류와 퍼미션, 소유자와 소유그룹, 사이즈, 파일의 액세스 날짜와 시간, 마지막으로 파일의 이름이 출력됩니다.
3. 파일의 시간별 정렬
: 예제 그림에 파일의 목록이 너무 길어서 위에서 10줄(head), 아래에서 10줄(tail) 을 함께 사용 해 보았습니다.이것은 제가 잘 사용하는 옵션인데, 4가지 옵션을 사용하고 있습니다. (lhrt)
l 옵션은 위에서 설명한 디테일한 리스트 형식으로 출력을 해주고
h 옵션은 휴먼 옵션입니다. 용량의 표기가 우리가 읽기 쉽게 기록 됩니다.
r 은 거꾸로 정렬을 해주고
t 는 시간으로 정렬을 해 줍니다.옵션의 순서는 상관이 없으며 그냥 이렇게 4개의 알파벳을 모두 기록해서 수행합니다.
시간순으로 가장 마지막에 수정된 파일이 가장 아래에 출력이 되어, 최근에 변경이 일어난 파일을 검색할 때,
유용하게 사용하고있는 옵션입니다.4. 단순 목록 조회인데 1열로 출력
: 파일의 목록을 한줄에 하나씩만 출력하고싶을 때 사용합니다.이것은 큰 의미는 없지만, ls 를 긁어서 1열로 만들어야 할때, 애초에 1열로 출력을 할 수 있습니다.
옵션은 -1 입니다(소문자 L 아니고, 숫자 1)5. i-node 숫자를 함께 출력
: 파일의 i-node 넘버를 함께 출력합니다.이것은 옵션없는 ls 와 같지만, i-node 넘버를 함께 출력 해 줍니다.
용도는 파일명이 타이핑 할 수 없는 파일일때, find 명령어와 함께 inode 로 파일을 지정하여 읽거나,변경하거나,삭제 할 수 있는데, 그때 파일의 inode 넘버 확인이 필요하게 되어 -i 옵션을 사용해서 확인합니다.6. Recursive 출력
: 이정도가 자주 사용하는 옵션이 되고, 그 외에도 자주는 아닌데 종종 사용되는 -R 옵션이 있습니다.(대문자R)이 대문자 R 옵션을 함께 사용하게 되면, 파일의 목록을 조회하고자 하는 경로 이하로 존재하는 모든 디렉토리의 내용까지 확인이 됩니다.
리눅스에서 자주 사용하는 ls 명령어에 대해 모두는 아니지만 저의 경험으로 자주 사용되는 옵션을 알아보았습니다.
문의사항이 있으시면, 댓글을 남겨주시면 성심껏 답변 드리겠습니다.
감사합니다.
'리눅스 엔지니어링 기술 > 5. 명령어' 카테고리의 다른 글
cat (0) 2024.09.24