ls 查看文件和目录列表 ============ 本小节介绍如何使用命令列出当前所在目录中所有文件和目录的列表,另外还介绍使用不同的命令参数筛选和限制展示出来的列表。 1\. 列出目录列表 ---------- 显示当前目录下的文件目录列表命令: ls 执行结果如下: ![](https://img.kancloud.cn/c1/b9/c1b94ffef729f34a3a6c6187384d20a3_1800x1032.png) > **Tips**:`ls` 命令列出来的目录排序默认是按字母的列排序。 2\. 列出有标记的目录列表 -------------- 使用 `ls -F` 命令可以在列表出来的文件后面加上一个标识,这样再使用 ls 命令列出文件列表时,能快速知道列出的文件类型和作用: ls -F 如下图所示: ![](https://img.kancloud.cn/cd/77/cd771baf3ef537c37bd5da53bebea667_1592x970.png) > **Tips**: `ls -F` 命令列出的文件名称后面会加一个标识,其中 `*` 表示可执行文件,`/` 表示目录,`=` 表示 socket 文件,`@` 表示 软链接,`|` 表示 FIFOs 文件。 3\. 列出包含隐藏文件的列表 --------------- 可以使用 `ls -a` 命令列出当前目录包含隐藏文件的所有文件列表: ls -a 执行结果如下: ![](https://img.kancloud.cn/58/fe/58fe06acf39a72b937cc08202a86763d_1500x960.png) 4\. 使用多个参数列出文件列表 ---------------- 可以在 ls 命令后面跟上多个参数列出的文件列表筛选: ls -F -R -a 或 ls -FRa 执行结果如下: ![](https://img.kancloud.cn/2b/e8/2be81d6823ec8a925763061f8119d31f_1886x1086.png) 5\. 使用 ll 命令显示文件列表详细信息 ---------------------- `ll` 命令是 `ls -l` 的简写,它可以显示出文件的权限、属主、大小、最后修改时间等等信息: ll 或 ls -l ### 5.1 文件类型 ![](https://img.kancloud.cn/de/fb/defb16d071c5e7eb2a1cd162f7e9f04f_1306x768.png) 最左侧一列表示该文件的类型: * **“-”** 表示普通文件; * **“d”** 表示目录; * **“l”** 表示链接文件; * **“p”** 表示管理文件; * **“b”** 表示块设备文件。 ### 5.2 文件属性 ![](https://img.kancloud.cn/19/41/19414486c03c7e9be88052a2669ace3a_1388x754.png) 这里以 `boot` 目录为例,`r-xr-xr-x` 可以分为三部分 `[r-x][r-x][r-x]`,其中的第一部分表示文件创建者/所有者对该文件所具有的的权限,第二部分表示创建者/所有者所在的组其他用户的权限,第三部分表示其他组的用户的权限。 * **r(Read,读取权限)**:若是文件,则表示可以读取文件内容,若是目录,则表示可以浏览目录; * **w(Write,写入权限)**:若是文件,则表示可以新增、修改内容,若是目录,则表示可以删除、移动目录列表的权限; * **x(Execute,执行权限)**:若是文件,则表示具有执行文件的权限,若是目录,则表示该用户拥有进入目录的权限。 > **Tips**:关于权限相关的知识这里只是了解一下,后面小节或介绍权限相关的内容。 ### 5.3 目录/链接个数 ![](https://img.kancloud.cn/1a/54/1a54f9ae398d985b796623fe42dcabc8_1360x742.png) * 如果是目录那么这里的数量减 2 表示它下级目录或者文件的个数。 * 如果是文件则表示指向它的链接文件的数量。 > **Tips**:每个目录下面都包含有 `.` 和 `..` 目录,其中 `.` 表示当前目录,`..` 表示上级目录。文件链接相当于 `windows` 里面的快捷方式。 ### 5.4 文件所有者 ![](https://img.kancloud.cn/81/54/8154065500dd41071696aefb2736bf28_1384x746.png) 其中 `root root` 可以分为两部分,`[root] [root]`,前面的 `root` 表示该文件或目录的所有者/创建者是 `root` 用户,后面的 `root` 表示该文件或目录所在的组是 `root`。 > **Tips**:关于用户权限和用户组的知识,后面小节会详细介绍。 ### 5.5 文件的大小 ![](https://img.kancloud.cn/34/01/3401984e686d1230d8813f86fbbd7b60_1342x742.png) * 如果是则表示该文件的大小,单位是字节(byte)。 * 如果是目录则表示该目录所占的空间大小,并不是指该目录下所有文件的大小。 > **Tips**:1 字节(byte) = 8 比特(bit), 1 kb = 1024 bit。 ### 5.6 修改日期 ![](https://img.kancloud.cn/44/8c/448cd8a0fa63712953b2b8f571a2645d_1270x758.png) 表示最后修改的时间,以 `boot` 目录为例,表示最后修改或者创建时间是 `4 月 19 日 12:27`。 ### 5.7 文件名称 ![](https://img.kancloud.cn/1c/3d/1c3d8ec4659ba6c42c29748c4af67807_1300x764.png) 表示文件名,其中 `bin->usr/bin` 表示软链接。 ### 5.8 字体颜色 ![](https://img.kancloud.cn/c3/64/c364681a83ff8325108bb7dada857e9a_1364x750.png) * 亮黄色表示设备文件; * 亮蓝色表示链接文件; * 灰蓝色表示目录; * 亮红色表示压缩文件; * 亮绿色表示可执行文件; * 灰白色表示普通文件。 6\. ls 命令参数介绍 ------------- 下面列出比较常见的 ls 相关的参数仅供参考: | ls 命令参数名称 | 功能与作用描述 | | :-- | :-- | | \-a | 表示 `–all`, 列出目录下的所有文件,包括以 `.` 开头的隐藏文件。 | | \-A | 表示 `-a`,但不列出 `.`(表示当前目录) 和 `..` (表示当前目录的上级目录)。 | | \-c | 表示按照最后更改时间排序,可以使用 `-l` 显示出时间。 | | \-f | 对输出的文件不进行排序。 | | \-g | 类似 `-l`,列出目录信息。 | | \-G | 表示 `–no-group`,不列出任何有关组的信息。 | | \-h | 表示 `–human-readable`,与 `-l` 配合使用,如 `ls -lh`以容易理解的格式列出文件大小,如 10k、20M、100G。 | | \-i | 表示 `–inode`,打印出每个文件的 `inode` 号。 | | \-l | 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来,`ls -l` 可以简写为 `ll`。 | | \-L | 表示 `–dereference`,当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 | | \-m | 所有文件或目录以 `,` 分隔,并填满整行行宽。 | | \-o | 类似 `-l`,显示文件的除组信息外的详细信息。 | | \-r | 表示 `–reverse`,按照当前排序顺序相反的顺序排列。 | | \-R | 表示 `–recursive`,递归出所有子目录层。 | | \-s | 表示 `–size`,以块大小为单位列出所有文件的大小。 | | \-S | 根据文件大小排序。 | 7.小结 ---- 本小节介绍了如何使用 `ls` 命令显示出目录或文件列表,还介绍了如何在 `ls` 命令后面跟上一个或多个参数对显示出的列表限制和筛选,另外还对 `ls -l 或 ll` 命令显示出来的文件信息做了详细的介绍,熟练掌握这些命令参数会帮助读者快速获取到目录或文件的信息,实际工作中需要根据具体的需要选择合适的参数帮助快速获取到文件相关信息,从而提升自己使用 Linux 系统的效率。