列出文件和目录
学习如何使用命令行界面(CLI)列出文件和目录。
ls 命令
ls 命令用于显示目录的内容。默认情况下,它只展示部分内容。通过添加一些额外的参数,我们可以获得更详细的列表信息。让我们在终端中运行命令 ls -l,查看当前主目录的内容。(注意:这里是小写的字母 L。)
1$ ls -l
该命令会以长格式列出当前目录的所有内容。文件名位于最右侧,前面包含一些附加信息。其结构如下图所示。
目录内容
| 类型 | 权限 | 链接数 | 文件所有者 | 组 | 大小 | 最后修改时间 | 文件名 |
|---|---|---|---|---|---|---|---|
| d | rwxr-xr-x | 2 | brian | brian | 4096 | 3月2日 11:59 | Desktop |
在此环境中,文件的所有者和组均为 root 用户。
第一个字符表示条目的类型。d 表示这是一个目录,连字符(-)表示这是一个普通文件,而 l 表示这是一个链接,即一种指向其他位置文件的特殊条目。
接下来的一组字符是文件权限。在这个例子中,我们看到 rwxr-xr-x,分别表示文件所有者、所属组以及其他用户对文件的读(r)、写(w)和执行(x)权限,顺序依次为:所有者、组、其他用户。具体含义如下:
文件权限
| 所有者 | 组 | 其他用户 |
|---|---|---|
| rwx | r-x | r-x |
在此情况下,文件所有者拥有对该文件的全部访问权限。与该文件关联的组成员可以读取和执行该文件,而其他所有人也可以读取和执行该文件。
对于目录而言,r、w 和 x 的含义略有不同:r 表示用户可以列出目录内容,w 表示可以向目录中添加、修改或删除项目,x 表示可以进入该目录。当前 Desktop 目录的权限为 rwxr-xr-x,这意味着当前用户拥有完全访问权限,而其他人可以查看目录内容并进入,但无法修改其中的内容。关于如何更改所有者、组和权限的内容,将在下一章详细介绍。
在链接数之后,显示的是文件的所有者,接着是可访问该文件的组。然后是文件大小(以字节为单位)、最后修改时间以及文件名本身。
目录的链接数包含当前目录(.)和父目录(..)这两个条目。
如果目录中包含子目录,每增加一个直接子目录,链接数就会相应增加。
在链接数之后,你会看到文件的所有者,接着是可访问该文件的组。然后是文件大小(以字节为单位)、最后修改时间以及文件名。
使输出更易读
文件大小的输出单位是字节,对于现代大文件来说并不直观。但如果我们结合使用 -h 标志和 -l 标志,可以获得更人性化的显示效果:
1$ ls -l -h
这种格式更好,因为它使用 K 表示千字节,M 表示兆字节,G 表示吉字节。请在下方终端中运行此命令,以便更好地理解。
为了节省输入,我们可以将单字母参数合并使用,例如:
1$ ls -lh
在本课程后续内容中,我们将一直采用这种写法。
显示隐藏文件
任何以点(.)开头的文件名或目录名都会在目录列表中被隐藏。它们在图形界面中通常也默认隐藏,除非你调整了相关设置。许多 shell 或程序的配置文件都采用这种命名方式,这类文件常被称为“点文件”(dotfiles)。我们的主目录中就存在一些这样的隐藏文件。要查看它们,只需在 ls 命令中加入 -a 标志:
1$ ls -alh
这次,目录列表返回了更多的文件。