文章目录
- 一、命令介绍
- 二、语法格式
- 三、常用选项
- 四、参考示例
- (一)显示工作目录下(当前目录)所有的文件和目录
- (二)显示工作目录下所有的文件和目录
- (三)显示文件的详细信息,且显示文件的修改时间,按文件名排序
- (四)显示文件的详细信息,且显示文件的修改时间,且根据修改时间来排序
- (五)显示工作目录下(当前目录)所有的文件和目录,但是不排序
- (六)根据文件类型显示颜色
- (七)显示工作目录下的文件及目录的详细信息,且完整显示文件的修改时间
- (八)显示当前目录下的文件及子目录的详细信息,且按文件创建时间倒序排列(即最早创建的文件排在前面)
- (九)显示当前目录的文件和子目录,并显示文件的块大小
- (十)显示当前目录的文件和子目录,并按文件大小排序
- (十一)显示当前目录的文件和子目录,并按文件大小排序,且横向罗列展示
- (十二)分别使用-p和-F选项显示当前目录下的文件和子目录,这两个选项会根据文件类型,给文件名末尾添加一个标识符
- (十三)递归显示指定目录下的内容
- (十四)-b和--show-control-chars选项演示
- (十五)显示指定目录本身的信息
 
一、命令介绍
命令 ls 的英文名为 List,即列表的意思。该命令用于列出目录和文件信息,和 Windows 系统下 DOS 命令 dir 类似。当执行 ls 命令时,默认显示的是非隐藏文件的文件名,且默认以文件名进行排序,且不同类型的文件名会按不同颜色显示。
二、语法格式
ls [选项] [参数]
参数:指定要显示内容的目录,也可以是具体的文件。
三、常用选项
| 选项 | 说明 | 
|---|---|
| -a | --all的缩写,显示所有的文件和目录,包括隐藏文件(以.开头的文件) | 
| -A | --almost-all的缩写,同-a,但不包括表示当前目录.和上级目录..这两个文件 | 
| -c | 显示文件 ctime,必须和 -l结合起来使用,与-lt选项连用时,按照文件状态时间(ctime)排序输出目录内容,排序的依据是文件的索引节点中的 ctime 字段 | 
| -C | 多列显示输出结果。这是默认选项 | 
| -f | 直接列出结果,而不进行排序(ls默认会以文件名排序)。此选项的效果和同时指定 -aU选项相同,并关闭-lst选项的效果 | 
| -F | --classify的缩写,在每个输出项后追加文件的类型标识符,具体含义:*表示可执行文件,/表示目录,@表示符号链接(symbolic link)文件,|表示命令管道文件(FIFO文件),=表示套接字文件(socket文件)。当文件为普通文件时,不输出任何标识符 | 
| -p | --file-type的缩写,和-F一样,但是经测试,仅目录会在后面追加类型标识符,其它文件类型则不会 | 
| --color[=WHEN] | 是否根据文件类型显示颜色, WHEN可以为never、always或者auto,此选项在Mac终端无效 | 
| --full-time | 显示文件的详细信息,且会完整显示文件的修改时间,类似于 ls -l --time-style=full-iso,此选项在 Mac 终端无效 | 
| -l | 以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等 | 
| -n | 和 -l类似,只是显示的所属用户和组不是名称而是对应的ID。以用户识别码和群组识别码替代其名称 | 
| -r | --reverse的缩写,将排序结果以倒序方式显示。以文件名反序排列并输出目录内容列表 | 
| -s | --size的缩写,以块大小为单位列出所有文件和目录的大小 | 
| -S | 以文件大小排序 | 
| -m | 用逗号区隔每个文件和目录的名称,即所有项目以逗号分隔,并填满整行行宽 | 
| -t | 按文件和目录的修改时间(mtime)排序 | 
| -R | --recursive的缩写,递归列出指定目录和子目录的内容 | 
| -b | 把文件名中不可输出的字符用反斜杠加字符编码的形式输出 | 
| -d | 显示目录,不是目录中的内容,仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表 | 
| -i | 显示文件索引节点号(inode)。一个索引节点代表一个文件 | 
| -k | 以KB(千字节)为单位显示文件大小 | 
| -L | 如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录 | 
| -h | 以人类可读的形式显示文件大小 | 
四、参考示例
(一)显示工作目录下(当前目录)所有的文件和目录
[root@htlwk0001host liaowenxiong]# ls -a
.   cptt  hoshiicloud  jewellerymall  qcterp  qpw    thoughts  yqd
..  fjrd  hsb          pronav         qctos   smzdc  yb
[root@htlwk0001host liaowenxiong]# 
(二)显示工作目录下所有的文件和目录
[root@htlwk0001host liaowenxiong]# ls -A
cptt  hoshiicloud  jewellerymall  qcterp  qpw    thoughts  yqd
fjrd  hsb          pronav         qctos   smzdc  yb
[root@htlwk0001host liaowenxiong]# (三)显示文件的详细信息,且显示文件的修改时间,按文件名排序
[root@htlwk0001host liaowenxiong]# ls -cl
总用量 52
drwxr-xr-x  7 root root   177 8月  25 11:20 cptt
drwxr-xr-x  6 root root    92 8月  26 10:47 fjrd
drwxr-xr-x 14 root root   233 8月  25 13:03 hoshiicloud
drwxr-xr-x  7 root root  4096 8月  25 13:47 hsb
drwxr-xr-x  6 root root   118 8月  25 13:58 jewellerymall
drwxr-xr-x  7 root root   170 8月  25 14:42 pronav
drwxr-xr-x  7 root root 20480 8月  25 16:09 qcterp
drwxr-xr-x  7 root root  4096 8月  25 16:51 qctos
drwxr-xr-x  4 root root    52 1月   9 23:13 qpw
drwxr-xr-x  7 root root    95 8月  26 11:17 smzdc
drwxr-xr-x  7 root root   112 8月  26 16:00 thoughts
drwxr-xr-x  7 root root  8192 8月  26 11:25 yb
drwxr-xr-x  7 root root  4096 8月  26 11:30 yqd
[root@htlwk0001host liaowenxiong]# ls -c -l  // 选项可以分开写
总用量 52
drwxr-xr-x  7 root root   177 8月  25 11:20 cptt
drwxr-xr-x  6 root root    92 8月  26 10:47 fjrd
drwxr-xr-x 14 root root   233 8月  25 13:03 hoshiicloud
drwxr-xr-x  7 root root  4096 8月  25 13:47 hsb
drwxr-xr-x  6 root root   118 8月  25 13:58 jewellerymall
drwxr-xr-x  7 root root   170 8月  25 14:42 pronav
drwxr-xr-x  7 root root 20480 8月  25 16:09 qcterp
drwxr-xr-x  7 root root  4096 8月  25 16:51 qctos
drwxr-xr-x  4 root root    52 1月   9 23:13 qpw
drwxr-xr-x  7 root root    95 8月  26 11:17 smzdc
drwxr-xr-x  7 root root   112 8月  26 16:00 thoughts
drwxr-xr-x  7 root root  8192 8月  26 11:25 yb
drwxr-xr-x  7 root root  4096 8月  26 11:30 yqd
[root@htlwk0001host liaowenxiong]# 
(四)显示文件的详细信息,且显示文件的修改时间,且根据修改时间来排序
[root@htlwk0001host liaowenxiong]# ls -clt
总用量 52
drwxr-xr-x  4 root root    52 1月   9 23:13 qpw
drwxr-xr-x  7 root root   112 8月  26 16:00 thoughts
drwxr-xr-x  7 root root  4096 8月  26 11:30 yqd
drwxr-xr-x  7 root root  8192 8月  26 11:25 yb
drwxr-xr-x  7 root root    95 8月  26 11:17 smzdc
drwxr-xr-x  6 root root    92 8月  26 10:47 fjrd
drwxr-xr-x  7 root root  4096 8月  25 16:51 qctos
drwxr-xr-x  7 root root 20480 8月  25 16:09 qcterp
drwxr-xr-x  7 root root   170 8月  25 14:42 pronav
drwxr-xr-x  6 root root   118 8月  25 13:58 jewellerymall
drwxr-xr-x  7 root root  4096 8月  25 13:47 hsb
drwxr-xr-x 14 root root   233 8月  25 13:03 hoshiicloud
drwxr-xr-x  7 root root   177 8月  25 11:20 cptt
[root@htlwk0001host liaowenxiong]# 
叨叨:命令就是这么奇葩,-cl仅仅显示文件修改时间但是不会按修改时间排序,-clt才会按修改时间排序
(五)显示工作目录下(当前目录)所有的文件和目录,但是不排序

 叨叨:不指定--color,默认是不会根据文件类型来显示颜色的
(六)根据文件类型显示颜色
[root@htlwk0001host home]# ls --color=never
dev  wwwroot
[root@htlwk0001host home]# ls --color=always
dev  wwwroot
[root@htlwk0001host home]# (七)显示工作目录下的文件及目录的详细信息,且完整显示文件的修改时间
[root@htlwk0001host liaowenxiong]# ls --full-time
总用量 52
drwxr-xr-x  7 root root   177 2020-08-25 11:20:08.357839752 +0800 cptt
drwxr-xr-x  6 root root    92 2020-08-26 10:47:58.857910245 +0800 fjrd
drwxr-xr-x 14 root root   233 2020-08-25 13:03:29.260491980 +0800 hoshiicloud[root@htlwk0001host liaowenxiong]# ls -l --time-style=full-iso
总用量 52
drwxr-xr-x  7 root root   177 2020-08-25 11:20:08.357839752 +0800 cptt
drwxr-xr-x  6 root root    92 2020-08-26 10:47:58.857910245 +0800 fjrd
drwxr-xr-x 14 root root   233 2020-08-25 13:03:29.260491980 +0800 hoshiicloud[root@htlwk0001host liaowenxiong]# 
(八)显示当前目录下的文件及子目录的详细信息,且按文件创建时间倒序排列(即最早创建的文件排在前面)
[root@htlwk0001host liaowenxiong]# ls -tlr
总用量 52
drwxr-xr-x  7 root root   177 8月  25 11:20 cptt
drwxr-xr-x  7 root root  4096 8月  25 13:47 hsb
drwxr-xr-x  6 root root   118 8月  25 13:58 jewellerymall
drwxr-xr-x  7 root root   170 8月  25 14:42 pronav
drwxr-xr-x  7 root root   112 8月  26 15:51 thoughts
drwxr-xr-x  2 root root     6 2月   6 13:29 test11
drwxr-xr-x  2 root root     6 2月   6 13:30 test2[root@htlwk0001host liaowenxiong]# ls -tl --reverse
总用量 52
drwxr-xr-x  7 root root   177 8月  25 11:20 cptt
drwxr-xr-x  7 root root  4096 8月  25 13:47 hsb
drwxr-xr-x  6 root root   118 8月  25 13:58 jewellerymall
drwxr-xr-x  7 root root  4096 8月  26 11:30 yqd
drwxr-xr-x  7 root root   112 8月  26 15:51 thoughts
drwxr-xr-x  2 root root     6 2月   6 13:29 test11
drwxr-xr-x  2 root root     6 2月   6 13:30 test2[root@htlwk0001host cptt]# ls -ltr i*  // 列出工作目录下所有名称以i开头的文件和目录,注意找到目录,还会把目录内的内容展示出来
-rw-r--r-- 1 root root 51897 9月  19 2019 index.htmlimages:
总用量 0
drwxr-xr-x 2 root root 111 8月  25 11:19 首页
drwxr-xr-x 2 root root 118 8月  25 11:19 文章详情
drwxr-xr-x 2 root root 269 8月  25 11:19 发布文章
drwxr-xr-x 2 root root   6 8月  25 11:19 文章详情_原创
[root@htlwk0001host cptt]# (九)显示当前目录的文件和子目录,并显示文件的块大小
[root@htlwk0001host liaowenxiong]# ls -s
总用量 520 cptt          8 hsb            24 qcterp   0 smzdc    0 thoughts0 fjrd          0 jewellerymall   4 qctos    0 test11  12 yb0 hoshiicloud   0 pronav          0 qpw      0 test2    4 yqd
[root@htlwk0001host liaowenxiong]# 
知识点:
假设每一个block仅能容纳一个文件, 如果块大小为4K, 而文件只有1K,则会有3K的空间被浪费,而total(总用量)记录的是4K的容量,所以total里面计算的是第一列
(十)显示当前目录的文件和子目录,并按文件大小排序
[root@htlwk0001host liaowenxiong]# ls -S
qcterp  hsb    yqd          cptt    jewellerymall  smzdc  qpw     test2
yb      qctos  hoshiicloud  pronav  thoughts       fjrd   test11
[root@htlwk0001host liaowenxiong]# 
(十一)显示当前目录的文件和子目录,并按文件大小排序,且横向罗列展示
[root@htlwk0001host liaowenxiong]# ls -S -m
qcterp, yb, hsb, qctos, yqd, hoshiicloud, cptt, pronav, jewellerymall, thoughts,
smzdc, fjrd, qpw, test11, test2
[root@htlwk0001host liaowenxiong]# 
叨叨:示例10你知道最大的文件是qcterp,那其次呢?你不会知道吧!在示例11中,你只要从左至右看就知道了,最大的是qcterp,其次yb,再次hsb…
(十二)分别使用-p和-F选项显示当前目录下的文件和子目录,这两个选项会根据文件类型,给文件名末尾添加一个标识符
 

(十三)递归显示指定目录下的内容
liaowenxiong@liaowenxiongdeMacBook-Air Demo % ls -R
Demo02DataType.class		DemoFor.class
Demo02DataType.java		DemoFor.java
Demo03DataTypeChar.class	file1
Demo03DataTypeChar.java./file1:
file2./file1/file2:
liaowenxiong@liaowenxiongdeMacBook-Air Demo % 
叨叨:如上面的执行结果可知,Demo下子目录file1,file1的子目录file2的内容也都显示出来了
(十四)-b和–show-control-chars选项演示
 
下面通过创建两个含不可显示字符\001和\n的文件名,来展示-b和–show-control-chars选项的区别。
[root@aiezu.com mm]# touch "`echo -e "aiezu.com\001.txt"`"[root@aiezu.com mm]# touch "`echo -e "aiezu\n.com.txt"`"[root@aiezu.com mm]# ls
aiezu.com?.txt  aiezu?.com.txt[root@aiezu mm]# ls -b
aiezu.com\001.txt  aiezu\n.com.txt[root@aiezu.com mm]# ls --show-control-chars
aiezu.com.txt  aiezu
.com.txt
(十五)显示指定目录本身的信息
注意:命令 ls 带不带选项 -a 或 -l ,指定的目录或者文件路径是不是以 / 结尾,命令执行结果是有区别。
[root@htlwk0001host home]# ls -d /Users  // 就仅显示目录名称
/Users
[root@htlwk0001host home]# ls -d // 显示当前目录
.
[root@htlwk0001host home]# ls -ld // 显示当前目录的详细信息
drwxr-xr-x+ 56 liaowenxiong  staff  1792  2  6 19:31 .
加上选项 -l,得到的结果:
[root@htlwk0001host home]# ls -al /bin
lrwxrwxrwx. 1 root root 7 5月  11 2019 /bin -> usr/bin
不加选项 -l,得到的结果:
[root@htlwk0001host home]# ls -a /bin.                                    du                            jconsole                    nl-addr-delete             rpm2archive               sync..                                   dumpkeys                      jcontrol                    nl-addr-list               rpm2cpio                  systemctl
没有以 / 结尾,得到的结果:
[root@htlwk0001host home]# ls -l /bin
lrwxrwxrwx. 1 root root 7 5月  11 2019 /bin -> usr/bin
以 / 结尾,得到的结果:
[root@htlwk0001host home]# ls -l /bin/
总用量 345548
-rwxr-xr-x  1 root root       55048 6月  10 2020 '['
lrwxrwxrwx  1 root root           8 4月  16 2020  2to3 -> 2to3-3.6
-rwxr-xr-x  1 root root         106 4月  16 2020  2to3-3.6
-rwxr-xr-x  1 root root       58456 6月   9 2020  ab
-rwxr-xr-x. 1 root root       33864 5月  11 2019  ac