Section 7.1: ls 命令的参数选项
下面是通过ls --help命令得到的输出结果,包含了 ls 命令中可以用的全部选项
用法:ls [选项]... [文件]...
列出 <文件>(默认为当前目录)的信息。
如果既没有指定 -cftuvSUX 中任何一个,也没有指定 --sort,则按字母排序项目。
长选项的必选参数对于短选项也是必选的。
-a, --all 不要隐藏以 . 开头的项目
-A, --almost-all 列出除 . 及 .. 以外的所有项目
--author 与 -l 同时使用时,列出每个文件的作者
-b, --escape 以 C 风格的转义序列表示不可打印的字符
--block-size=大小 与 -l 同时使用时,打印大小前将其除以 <大小>;
例如:"--block-size=M";参见下方的 <大小> 格式
-B, --ignore-backups 不要列出以 ~ 结尾的项目
-c 与 -lt 一起使用时:按照 ctime 排序,并显示
ctime(文件状态信息最后修改的时间);
与 -l 一起使用时:显示 ctime 并按照名称排序;
其它情况:按照 ctime 排序,最新的最前
-C 逐列列出项目
--color[=何时] 指定 <何时> 使用彩色输出;更多信息请见下文
-d, --directory 列出目录本身,而不是目录的内容
-D, --dired 产生适合 Emacs 的 dired 模式使用的输出
-f 按照目录顺序列出各项目
-F, --classify[=何时] 指定 <何时> 在项目后追加指示符号(*/=@| 中的一个)
--file-type 类似,但不追加 "*" 字符
--format=关键字 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
将目录排在文件前面;
此选项可与 --sort 一起使用,但是一旦使用
--sort=none (-U) 则禁用此选项
-G, --no-group 使用长列表格式时,不输出组名
-h, --human-readable 同时使用 -l 或 -s 时,将大小表示为 1K 234M 2G 等
--si 类似,但是使用 1000 的幂,而不是 1024
-H, --dereference-command-line
跟随命令行中列出的符号链接
--dereference-command-line-symlink-to-dir
跟随命令行中列出的、指向目录的符号链接
--hide=模式 隐藏符合 shell <模式> 的项目
(-a 或 -A 使此选项失效)
--hyperlink[=何时] 指定 <何时> 使用超链接显示文件名
--indicator-style=关键字 指定在项目名称后追加的指示符号的风格:
none(默认)、slash(同 -p)、
file-type(同 --file-type)、classify(同 -F)
-i, --inode 显示每个文件的索引编号(inode 号)
-I, --ignore=模式 隐藏符合 shell <模式> 的项目
-k, --kibibytes 显示文件系统使用量时,默认使用 1024 字节的块大小;
只用于 -s 和每个目录的总计
-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=关键字 使用指定的加引号方式显示项目名称:
literal、locale、shell、shell-always、
shell-escape、shell-escape-always、c、escape
(该选项优先于 QUOTING_STYLE 环境变量)
-r, --reverse 排序时逆序排列
-R, --recursive 递归地列出子目录
-s, --size 显示给每个文件分配的大小,单位为块
-S 根据文件大小排序,最大的最前
--sort=关键字 按照 <关键字> 而非名称进行排序:none(同 -U)、
size(同 -S)、time(同 -t)、version(同 -v)、
extension(同 -X)、width
--time=关键字 选择用于显示或排序的时间戳;
访问时间(同 -u):atime、access、use;
元数据变更时间(同 -c):ctime、status;
修改时间(默认):mtime、modification;
创建时间:birth、creation;
和 -l 同时使用时,<关键字> 指定要显示的时间类型;
和 --sort=time 同时使用时,按照 <关键字> 进行排序
(最新的最前)
--time-style=时间风格
使用 -l 时显示的时间/日期格式;参见下面
<时间风格> 的相关内容
-t 按时间排序,最新的最前;参见 --time
-T, --tabsize=列数 指定制表符宽度为 <列数>,而非默认的 8
-u 与 -lt 同时使用时:显示访问时间且按访问时间排序;
与 -l 同时使用时:显示访问时间但按名称排序;
其他情况:按访问时间排序,最新的最前
-U 不进行排序;按照目录顺序列出项目
-v 对文本中的数字(或版本号)进行自然排序
-w, --width=列数 设置输出宽度为 <列数>。0 表示无限制
-x 逐行列出项目而不是逐列列出
-X 按照扩展名的字母顺序排序
-Z, --context 输出每个文件的所有安全上下文信息
--zero 以 NUL 字符而非换行结束每个输出行
-1 每行只列出一个文件
--help 显示此帮助信息并退出
--version 显示版本信息并退出
<大小> 参数是一个整数,后面可以跟一个单位(例如:10K 指 10*1024)。
可用的单位有 K、M、G、T、P、E、Z、Y、R、Q(1024 的幂),
以及 KB、MB、...(1000 的幂)。
也可以使用二进制前缀:KiB=K、MiB=M,以此类推。
<时间风格> 参数可以是 full-iso、long-iso、iso、locale,或者 +格式。
<格式> 的解析方式同 date(1)。如果 <格式> 是 格式1<换行符>格式2 的话,
则 <格式1> 将应用于时间较久远的文件,<格式2> 将应用于时间较近的文件。
<时间风格> 如果带有 "posix-" 前缀,则它只会在区域设置非 POSIX 时生效。
另外,可以使用 TIME_STYLE 环境变量设置默认使用的风格。
<何时> 参数的默认值是 "always",也可以设为 "auto" 或 "never"。
使用颜色来区分文件类型的功能默认禁用,也可以使用 --color=never 禁用。
若使用 --color=auto 选项,ls 只在标准输出连接至终端时才生成颜色代码。
LS_COLORS 环境变量可以改变颜色设置。可以使用 dircolors(1) 命令来设置它。
退出状态:
0 表示正常,
1 表示小问题(例如:无法访问子目录),
2 表示严重问题(例如:无法使用命令行参数)。
Section 7.2: ls命令的最常用例子
ls 命令显示当前工作目录中的文件和目录。默认情况下没有传递任何参数,它不会显示以 . 开头的隐藏文件。
demouser@demohosts:/var$ ls
backups cache crash lib local lock log mail metrics opt run snap spool tmp
使用 ls -a 或 ls --all 查看所有文件(包括 隐藏文件/文件夹)。
demouser@demohosts:/var$ ls -a
. backups crash local log metrics run spool .updated
.. cache lib lock mail opt snap tmp
demouser@demohosts:/var$ ls --all
. backups crash local log metrics run spool .updated
.. cache lib lock mail opt snap tmp
使用 ls -F 或 ls --classify 可以区分文件和文件夹、符号链接和其他
demouser@demohosts:~$ ls -F
公共/ 图片/ 音乐/ daemon_symbolic@ docker-gitlab.yml HardwareList.xml
模板/ 文档/ 桌面/ docker-compose-linux-x86_64* docker-lskypro.yml snap/
视频/ 下载/ daemon.json docker-compose.yml HardwareList.html typecho/
demouser@demohosts:~$ ls --classify
公共/ 图片/ 音乐/ daemon_symbolic@ docker-gitlab.yml HardwareList.xml
模板/ 文档/ 桌面/ docker-compose-linux-x86_64* docker-lskypro.yml snap/
视频/ 下载/ daemon.json docker-compose.yml HardwareList.html typecho/
在输出结束中结尾的字符用于区分文件和文件夹。
-
/代表目录 -
*代表可执行文件 -
@代表链接文件
To get more details about the files and directories, use ls -l
要获得有关文件和目录的更多详细信息,就需要用到 ls -l 这个命令了。
demouser@demohosts:~$ ls -l
总计 1072
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 公共
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 模板
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 视频
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 图片
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 文档
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 下载
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 音乐
drwxr-xr-x 2 demouser demouser 4096 9月 23 19:50 桌面
-rw-r--r-- 1 demouser demouser 66 10月 24 09:41 daemon.json
lrwxrwxrwx 1 demouser demouser 23 11月 5 12:00 daemon_symbolic -> /etc/docker/daemon.json
-rwxrwxr-x 1 demouser demouser 620528 11月 2 10:52 docker-compose-linux-x86_64
-rw-rw-r-- 1 demouser demouser 886 10月 31 21:19 docker-compose.yml
-rw-rw-r-- 1 demouser demouser 428 10月 31 22:32 docker-gitlab.yml
-rw-rw-r-- 1 demouser demouser 155 11月 1 22:32 docker-lskypro.yml
-rw-rw-r-- 1 demouser demouser 249670 11月 5 10:43 HardwareList.html
-rw-rw-r-- 1 demouser demouser 165808 11月 5 10:43 HardwareList.xml
drwx------ 4 demouser demouser 4096 10月 31 21:00 snap
drwxr-xr-x 4 root root 4096 10月 31 21:24 typecho
在这个例子中,目录当前内容(不含子目录的内容)的总大小是1072KB。
然后,每个文件/目录都有一行条目,顺序按字母排列,数字开头排最前面,接着是中文等字符,最后大写字母在小写字母之前。
-
第一个字符是类型(例如d - directory, l - link)
-
接下来的9个字符显示用户、组和其他用户的权限。
-
接下来是硬链接的数量,然后是所有者的名字和组。
-
下一个字段是以字节为单位的大小。这可以通过添加-h选项以人类友好的形式显示。如:
docker-compose-linux-x86_64文件的 “620528” 显示为 “606K”。 -
接下来是一个时间戳(通常是修改时间)。
-
最后一个字段是名字。注意:链接也显示链接的目标,如上面的
daemon_symbolic -> /etc/docker/daemon.json。