在 Linux 系统中,列出文件是普通用户和系统管理员最常执行的任务之一。Linux 中的 ls
命令,全称是“list”,用于列出或显示目录的内容。这可以是当前目录,也可以是系统中的任何其他目录。该命令会显示文件和子目录,并且在大多数情况下,会通过颜色代码来区分不同的文件类型。
如果不带任何命令行选项,ls
命令会简单地按字母顺序列出所有目录内容。不过,它提供了许多实用的命令行选项,可以让你灵活地调整输出内容,展示你想要的信息。
ls 命令的语法
ls
命令的基本语法如下:
$ ls [ options ] /path/to/directory
其中,options
部分代表可以传递的命令行参数,用于调整命令的输出。
在本教程中,我们将介绍以下 ls
命令的常用选项。
选项 | 描述 |
---|---|
ls -m | 用逗号分隔列出目录内容。 |
ls -Q | 用引号括起目录内容。 |
ls -l | 以长列表格式显示文件。 |
ls -lh | 以人类可读的格式显示文件大小。 |
ls -g | 省略组所有权列。 |
ls -F | 在目录后添加斜杠。 |
ls -i | 显示文件和目录的 inode 编号。 |
ls -a | 显示所有文件,包括隐藏文件。 |
ls *. | 根据文件扩展名过滤文件。 |
ls -la | 以长列表格式显示所有文件和目录。 |
ls -R | 递归显示文件和目录。 |
ls -r | 反向排序文件。 |
ls -X | 按文件扩展名字母顺序排序。 |
ls -tl | 按文件创建日期和时间排序。 |
ls -n | 列出 UID 和 GID。 |
1. 列出文件和目录
如果不带任何命令行选项或参数运行 ls
命令,它会简单地按字母顺序列出目录内容。此时,我们无法查看文件类型、大小、修改日期和时间、权限等详细信息。
$ ls
2. 以长列表格式显示文件
-l
选项可以让你以列格式打印出目录内容的详细信息,包括文件大小、修改日期和时间、文件或目录名称、所有者及其权限。
$ ls -l
从左到右依次是:
- 第 1 列 – 文件/目录权限。
- 第 2 列 – 链接数。
- 第 3 列 – 所有者名称。
- 第 4 列 – 文件所属组的名称。
- 第 5 列 – 文件大小(字节)。
- 第 6 到 8 列 – 最后修改日期。
- 第 9 列 – 文件/目录名称。
3. 列出隐藏文件和目录
隐藏文件是存储用户设置和配置文件的特殊文件,通常由正在运行的程序和服务用于读取和存储信息。例如,.bashrc
文件是一个脚本,包含当前登录用户的设置和配置,比如命令别名、Shell 历史记录、终端字体颜色等。
.bash_logout
文件则在你退出 bash 会话时执行,主要用于清理操作,比如执行退出 bash shell 时需要完成的任务。
要列出隐藏文件,可以使用 -a
选项,它会显示隐藏文件和目录。
$ ls -a
4. 列出所有文件
正如你所看到的,-a
选项不仅会列出隐藏文件,还会显示所有文件和目录。为了更好地查看,可以使用 -la
选项。
$ ls -la
5. 以人类可读的格式显示文件大小
为了让输出更易读,可以加上 -h
选项,以人类可读的格式显示文件大小。输出中,文件大小会以 KB、MB 和 GB 显示,看起来更直观。
$ ls -lh
6. 区分目录和文件
运行 ls
命令时,有时很难清楚地区分文件和目录。-F
选项会在目录后添加斜杠 (/)
,使它们更容易与其他文件区分开来。
$ ls -F
7. 反向排序文件
默认情况下,ls
命令会按字母顺序(从 A 到 Z)排序文件和目录。你可以使用 -r
选项将目录内容按反向顺序排序。
$ ls -lr
此外,你还可以使用 -X
选项按文件扩展名的字母顺序排序。
$ ls -X
8. 递归列出文件
-R
选项会递归列出文件。首先,命令会列出当前目录中的所有文件和目录,然后继续显示各个目录和子目录中的文件。
$ ls -R
在以下示例中,各个目录中的文件也被列出来了。
9. 按修改时间排序文件
ls -ltr
命令会以长列表格式按修改时间的反向顺序显示文件,这意味着它会根据文件或目录的最后修改时间戳,以反向顺序显示详细信息。
$ ls -ltr
10. 按从新到旧排序文件
你可以使用 -t
选项按时间排序文件,它会从最新到最旧依次显示文件。
$ ls -tl
11. 按文件大小排序
结合 -lS
选项,可以按文件大小降序排列(从大到小)。
$ ls -lS
12. 列出文件的 inode 编号
你可以使用 -i
选项显示文件和目录的 inode 编号。
$ ls -i
13. 用逗号分隔列出文件和目录
-m
选项会用逗号分隔列出目录内容。
$ ls -m
而 -Q
选项则会将所有目录内容用双引号括起来。
$ ls -Q
14. 在长列表格式中省略组所有权
当与 -l
选项一起使用时,ls
命令会打印文件的用户和组所有权。你可以通过 -g
选项省略组列。
$ ls -g
15. 列出特定文件类型或扩展名
要列出特定文件类型或扩展名,可以使用通配符 (*)
后跟文件扩展名。
例如,列出所有 .jpg
文件:
$ ls *.jpg
同样,列出所有 PDF 文件:
$ ls *.pdf
16. 列出文件的 UID 和 GID
要显示文件和目录的 UID 和 GID,可以使用 -n
选项。
$ ls -n
17. 检查 ls 命令的版本
如果你有点好奇,想查看 ls
命令的版本,可以这样做:
$ ls --version
从输出中可以看到,我们正在运行的是 ls
版本 9.1。
18. 显示 ls 命令的帮助页面
ls
程序提供了丰富的命令行选项。我们介绍的只是其中一些常用的选项。要查看所有选项的完整列表,可以运行以下命令:
$ ls --help
或者,你也可以通过以下命令查看手册页:
$ man ls
19. 列出目录信息
使用 ls -l
命令可以列出 /tmp
目录下的文件。而使用 -ld
选项,则会显示 /tmp
目录的信息。
$ ls -l /tmp
$ ls -ld /tmp/
20. 创建 ls 命令别名
我们可以为 ls
命令创建一个别名,这样当我们执行 ls
命令时,默认会带上 -l
选项,显示长列表格式。
$ alias ls="ls -l"
要查看系统中可用的别名,可以使用以下命令:
$ alias
要删除之前定义的别名,只需使用 unalias
命令。
$ unalias ls
在本指南中,我们演示了如何使用 ls
命令查看文件夹或目录的内容。此外,我们还进一步探索了可以与 ls
命令一起使用的各种选项。