命令行大全

ls

rose1 发表于 2020-09-24 09:00浏览次数:

在类似Unix的操作系统上,ls命令列出有关文件和目录的信息。 本文档介绍了ls的GNU / Linux版本。

查看英文版

目录:

1 ls 运行系统环境

2 ls 说明

3 ls 语法

4 ls 例子

ls 运行系统环境

Linux

ls 说明

ls列出文件和目录及其关联的元数据,例如文件大小,所有权和修改时间。如果没有任何选项,ls将列出当前目录中包含的文件,并按字母顺序对其进行排序。
ls lists files and directories, and their associated metadata, such as file size, ownership, and modification time. With no options, ls lists the files contained in the current directory, sorting them alphabetically.

查看英文版

查看中文版

ls 语法

ls [option ...] [file]...
ls [-a | --all] [-A | --almost-all] [--author] [-b | --escape]
   [--block-size=size] [-B | --ignore-backups] [-c] [-C] [--color[=when]] 
   [-d | --directory] [-D | --dired] [-f] [-F | --classify] [--file-type]
   [--format=word] [--full-time] [-g] [--group-directories-first]
   [-G | --no-group] [-h | --human-readable] [--si] 
   [-H | --dereference-command-line] [--dereference-command-line-symlink-to-dir]
   [--hide=pattern] [--indicator-style=word] [-i | --inode]
   [-I | --ignore=pattern] [-k | --kibibytes] [-l] [-L | --dereference] 
   [-m] [-n | --numeric-uid-gid] [-N | --literal] [-o] 
   [-p | --indicator-style=slash] [-q | --hide-control-chars]
   [--show-control-chars] [-Q | --quote-name] [--quoting-style=word]
   [-r | --reverse] [-R | --recursive] [-s | --size] [-S] [--sort=word]
   [--time=word] [--time-style=style] [-t] [-T | --tabsize=cols]
   [-u] [-U] [-v] [-w | --width=cols] [-x] [-X] [-Z | --context] [-1]
ls [--help | --version]

选件

-a--all 不要忽略以“ 。 ” 开头的条目,以提供对隐藏文件(以“。”开头的文件)的可见性。
-A--almost-all 不要列出隐含的“ 。 ”和“ .. ”。
--author 使用-l,打印每个文件的作者。
-b--escape 为非图形字符打印C样式的转义符。
--block-size=size 在打印之前按尺寸缩放尺寸。例如,“ --block-size = M ”以1,048,576 个字节为单位打印大小。请参阅下面的尺寸格式。
-B--ignore-backups 不要列出以“ 〜 ” 结尾的隐含条目。
-c 使用-lt:,排序并显示ctime(文件状态信息的最后修改时间);使用-l :,显示ctime并按名称排序;否则:按ctime排序,最新的优先。
-C 按列列出条目。
--color[=when] 着色输出。当默认为“ 始终 ”,也可以是“ 从不 ”“ 自动 ”。
-d--directory 列出目录条目而不是目录,并且不要取消引用符号链接。
-D--dired 生成为Emacs的Dired模式设计的输出。
-f 不要排序,启用-aU和禁用-ls --color。
-F--classify 将指示符(* / => @ |之一)添加到条目。
--file-type --classify相似,除了不附加' * '
--format=word 根据以下格式:跨-x,逗号-m,水平-x,-l,单列-1,详细-l,垂直-C。
--full-time -l --time-style = full-iso一样。
-g -l类似,但不列出所有者。
--group-directories-first 在文件之前对目录进行分组。可以使用--sort选项进行扩充,但是对--sort = none(-U)的任何使用都会禁用分组。
-G--no-group 在长列表中,请勿打印组名。
-h--human-readable 使用-l时,以人类可读格式(例如1K,234M,2G)打印尺寸。
--si 类似于--human-可读,但使用1000的幂,而不是1024的幂。
-H--dereference-command-line 遵循命令行上列出的符号链接。
--dereference-command-line-symlink-to-dir 跟随每个指向目录的命令行符号链接。
--hide=pattern 不要列出与外壳模式匹配的隐式条目(被-a-A覆盖)。
--indicator-style=word 将带有样式词的指示符附加到条目名称:(默认),斜杠(-p),文件类型(--file-type),分类(-F)。
-i--inode 打印每个文件的索引号。
-I--ignore=pattern 不要列出与shell 模式匹配的隐式条目。
-k--kibibytes 使用1024字节的块。
-l 使用长列表格式。
-L--dereference 当显示符号链接的文件信息时,请显示链接引用的文件信息,而不是链接本身。
-m 用逗号分隔的条目列表填充宽度。
-n--numeric-uid-gid -l类似,但列出数字用户名和组ID。
-N--literal 打印原始条目名称(例如,不要特别处理控制字符)。
-o -l类似,但不列出组信息。
-p--indicator-style=slash “ / ”指示符附加到目录
-q--hide-control-chars 打印而不是非图形字符。
--show-control-chars 按原样显示非图形字符(除非程序为“ ls ”且输出为终端,否则为默认值)。
-Q--quote-name 条目名称用双引号引起来。
--quoting-style=word 条目名称使用引号样式词:literal,locale,shell,shell-always,c,escape。
-r--reverse 排序时倒序。
-R--recursive 递归列出子目录。
-s--size 以块为单位打印分配给每个文件的大小。
-S 按文件大小排序。
--sort=word 按单词而不是名称排序:无(-U),扩展名(-X),大小(-S),时间(-t),版本(-v)。
--time=word 使用-l,将时间显示为单词而不是修改时间:“ atime ”(-u),“ access ”(-u),“ use ”(-u),“ ctime ”(- c)或“ status ”(-c); 如果--sort = time,请使用指定的时间作为排序键。
--time-style=style -l一起使用style 样式显示时间。
样式可能是以下之一:“ full-iso ”,“ long-iso ”,“ iso ”,“ locale ”,“ + format ”。

格式解释为“ 日期 ”;如果格式是“ 格式1 <换行符> FORMAT2 ”,格式1适用于非新的文件和FORMAT2到最近的文件; 如果样式以' posix- ' 开头,
-t 按修改时间排序,从新到旧。
-T--tabsize=cols 假设在每个制表COLS代替8。
-u 使用-lt:,排序并显示访问时间;与-l:显示访问时间和按名称排序; 否则:按访问时间排序。
-U 不要排序;按目录顺序列出条目。
-v 文本内自然的(版本)数字排序。
-w--width=cols 假设屏幕宽度为cols而不是当前值。
-x 按行而不是按列列出条目。
-X 按条目扩展名的字母顺序排序。
-Z--context 打印每个文件的任何SELinux安全性上下文。
-1 每行列出一个文件。
--help 显示帮助消息并退出。
--version 显示版本信息并退出。

尺寸格式

size是一个整数和可选单位(例如:10M10 * 1024 * 1024)。单位为K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB,...(1000的幂)。

默认情况下和--color = never都禁用使用颜色来区分文件类型。使用--color = auto,ls仅在将标准输出连接到终端时才发出颜色代码。该LS_COLORS 环境变量可以更改设置。使用dircolors命令进行设置。

退出状态

0 一切都好。
1 有一些小问题;例如,无法访问子目录。
2 有严重的问题;例如,无法访问命令行选项。

显示在“较长”列表中的信息

要查看有关文件的扩展信息,请使用-l选项创建“长”列表。例如:

ls -l file.txt

...显示如下内容:

-rwxrw-r-- 1   hope   hopestaff  123   Feb 03 15:36   file.txt

以下是此信息的每个部分的含义:

-

第一个字符代表文件类型:“ - ”代表常规文件,“ d ”代表目录,“ l ”代表符号链接。

rwx

接下来的三个字符代表文件的所有者的权限:在这种情况下,业主可read从,write成人礼,矿石xecute 文件。

rw-

接下来的三个字符代表文件组成员的权限。在这种情况下,文件所属组可能的任何成员read或write到该文件。最后一个破折号是一个占位符;组成员没有执行此文件的权限。

r--

“其他”(其他任何人)的权限。其他人可能只read此文件。

1

与此文件的硬链接数。

hope

文件的所有者。

hopestaff

文件所属的组。

123

文件大小,以块为单位。

Feb 03 15:36

文件的mtime(文件的上次修改日期和时间)。

file.txt

文件名。

ls [option ...] [file]...
ls [-a | --all] [-A | --almost-all] [--author] [-b | --escape]
   [--block-size=size] [-B | --ignore-backups] [-c] [-C] [--color[=when]] 
   [-d | --directory] [-D | --dired] [-f] [-F | --classify] [--file-type]
   [--format=word] [--full-time] [-g] [--group-directories-first]
   [-G | --no-group] [-h | --human-readable] [--si] 
   [-H | --dereference-command-line] [--dereference-command-line-symlink-to-dir]
   [--hide=pattern] [--indicator-style=word] [-i | --inode]
   [-I | --ignore=pattern] [-k | --kibibytes] [-l] [-L | --dereference] 
   [-m] [-n | --numeric-uid-gid] [-N | --literal] [-o] 
   [-p | --indicator-style=slash] [-q | --hide-control-chars]
   [--show-control-chars] [-Q | --quote-name] [--quoting-style=word]
   [-r | --reverse] [-R | --recursive] [-s | --size] [-S] [--sort=word]
   [--time=word] [--time-style=style] [-t] [-T | --tabsize=cols]
   [-u] [-U] [-v] [-w | --width=cols] [-x] [-X] [-Z | --context] [-1]
ls [--help | --version]

Options

-a--all Do not ignore entries starting with ".", providing visibility to hidden files (those starting with a ".")
-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 Scale sizes by size before printing them. For example, '--block-size=M' prints sizes in units of 1,048,576 bytes. See size format below.
-B--ignore-backups Do not list implied entries ending with "~".
-c With -lt:, sort by and show the ctime (time of last modification 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] Colorize the output. when defaults to 'always' or can be 'never' or 'auto'.
-d--directory List directory entries instead of contents, and do not dereference symbolic links.
-D--dired Generate output designed for Emacs' dired mode.
-f Do not sort, enable -aU, and disable -ls --color.
-F--classify Append indicator (one of */=>@|) to entries.
--file-type Similar to --classify, except do not append '*'
--format=word Formats according to the following: 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, print sizes in human-readable format (e.g., 1K234M2G).
--si Like --human-readable, 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).
--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 Use 1024-byte blocks.
-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 raw entry names (don't treat e.g., control characters specially).
-o Like -l, but do not list group information.
-p--indicator-style=slash Append "/" indicator to directories
-q--hide-control-chars Print ? instead of non graphic characters.
--show-control-chars Show non graphic characters as-is (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: literallocaleshellshell-alwayscescape.
-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.
--sort=word Sort by word instead of name: none (-U), extension (-X), size (-S), time (-t), version (-v).
--time=word With -l, show time as word instead of modification time: "atime" (-u), "access" (-u), "use" (-u), "ctime" (-c), or "status" (-c); use specified time as sort key if --sort=time.
--time-style=style With -l, show times using style style.

style may be one of: "full-iso", "long-iso", "iso", "locale", "+format".

format is interpreted like 'date'; if format is "format1format2", format1 applies to non-recent files and format2 to recent files; if style is prefixed with 'posix-', style takes effect only outside the POSIX locale.
-t Sort by modification time, newest first.
-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.
-U Do not sort; list entries in directory order.
-v Natural sort of (version) numbers within text.
-w--width=cols Assume screen width cols instead of current value.
-x List entries by lines instead of by columns.
-X Sort alphabetically by entry extension.
-Z--context Print any SELinux security context of each file.
-1 List one file per line.
--help Display a help message and exit.
--version Display version information and exit.

Size Format

size is an integer and optional unit (example: 10M is 10*1024*1024). Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KBMB, ... (powers of 1000).

Using color to distinguish file types is disabled both by default and with --color=never. With --color=autols emits color codes only when standard output is connected to a terminal. The LS_COLORSenvironment variable can change the settings. Use the dircolors command to set it.

Exit Status

0 Everything is OK.
1 There were minor problems; for example, could not access a subdirectory.
2 There were serious problems; for example, a command-line option could not be accessed.

Information shown in a "long" listing

To view extended information about files, use the -l option to create a "long" listing. For instance:

ls -l file.txt

...displays something like the following:

-rwxrw-r-- 1   hope   hopestaff  123   Feb 03 15:36   file.txt

Here's what each part of this information means:

-

The first character represents the file type: "-" for a regular file, "d" for a directory, "l" for a symbolic link.

rwx

The next three characters represent the permissions for the file's owner: in this case, the owner may read from, write to, ore xecute the file.

rw-

The next three characters represent the permissions for members of the file group. In this case, any member of the file's owning group may read from or write to the file. The final dash is a placeholder; group members do not have permission to execute this file.

r--

The permissions for "others" (everyone else). Others may only read this file.

1

The number of hard links to this file.

hope

The file's owner.

hopestaff

The group to whom the file belongs.

123

The size of the file in blocks.

Feb 03 15:36

The file's mtime (date and time when the file was last modified).

file.txt

The name of the file.

查看英文版

查看中文版

ls 例子

ls -l

列出目录和子目录中的文件总数,当前目录中的文件名,它们的权限,列出的目录中子目录的数量,文件的大小以及上次修改的日期。

ls -laxo

列出具有权限的文件,显示隐藏的文件,以列格式显示它们,并取消显示组信息。

ls ~

通过在ls命令之后添加波浪号来列出主目录的内容。

ls /

列出您的根目录的内容。

ls ../

列出父目录的内容。

ls */

列出所有子目录的内容。

ls -d */

显示当前目录中的目录列表。

ls *.{htm,php,cgi}

列出所有包含文件扩展名 .htm,.php或.cgi的文件

ls -ltr

以相反的顺序列出文件的最新修改时间(最近修改的文件最后一次)。

ls [aeiou]*

在上面的示例中,仅以元音(a,e,i,o或u)开头的文件。

ls myfile.txt 2>/dev/null

如果ls命令找不到该文件,则静音或禁止显示任何错误消息。

ls -l

Lists the total files in the directory and subdirectories, the names of the files in the current directory, their permissions, the number of subdirectories in directories listed, the size of the file, and the date of last modification.

ls -laxo

Lists files with permissions, shows hidden files, displays them in a column format, and suppresses group information.

ls ~

List the contents of your home directory by adding a tilde after the ls command.

ls /

List the contents of your root directory.

ls ../

List the contents of the parent directory.

ls */

List the contents of all subdirectories.

ls -d */

Display a list of directories in the current directory.

ls *.{htm,php,cgi}

List all files containing the file extension .htm, .php, or .cgi

ls -ltr

List files sorted by the time they were last modified in reverse order (most recently modified files last).

ls [aeiou]*

In the above example, only files that begin with a vowel (a, e, i, o, or u).

ls myfile.txt 2>/dev/null

Silences or suppresses any error message if the ls command does not find the file.

Tip

Please also see our explanation of the ./ and ../ directories listed in the listing of files.

查看英文版

查看中文版