在 Linux 中使用 ls 命令列出文件
ls
命令是任何 Linux 用户应该知道的基本命令之一,它用于列出有关文件系统中的文件和目录的信息。ls
程序安装在所有Linux发行版上,它是 GNU 核心实用程序的一部分。
在本教程中,我们将通过实际示例和最常见的 ls
选项的详细说明向您展示如何使用 ls
命令。
如何使用ls命令
ls
命令的语法如下:
ls [OPTIONS] [FILES]
当没有参数使用时,ls
命令将列出当前工作目录中所有文件的名称:
ls
文件按字母顺序列出:
cache db empty games lib local lock log mail opt run spool tmp
要列出特定目录中的文件,请将目录的路径传递给 ls
命令。例如,要列出目录的内容 /etc
,请键入:
ls /etc
您还可以将多个给以空格分隔的目录和文件传递给 ls
命令:
ls /etc /var /etc/passwd
如果您登录的用户没有对该目录的读取权限,您将收到一条消息,指出 ls
命令无法打开该目录:
ls /root
ls: cannot open directory '/root': Permission denied
ls
命令有许多选项,在下面的部分中,我们将探索最常用的选项。
长清单格式
ls
命令的默认输出仅显示文件的名称,这些信息的信息量不大。使用长列表格式时,ls命令将显示以下文件信息:
- 文件类型
- 文件权限
- 文件的硬链接数
- 文件所有者
- 文件组
- 文件大小
- 日期和时间
- 文件名
ls
通过使用 -l
(小写 l )选项来输出在长列表格式的文件列表。
ls -l /etc/hosts
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
让我们解释一下输出中最重要的列。
第一个字符显示文件类型。在我们的示例中,第一个字符是-常规文件。其他文件类型的值如下:
-
- 常规文件b
- 阻止特殊文件c
- 角色特殊文件d
- 目录l
- 符号链接n
- 网络文件p
- FIFOs
- 插座
接下来的九个字符显示文件权限。前三个字符用于描述用户权限,后三个用于描述组用户权限,最后三个用于描述其他用户的权限。您可以使用 chmod
命令更改文件权限。权限字符可以采用以下值:
r
- 读取文件的权限w
- 写入文件的权限x
- 执行文件的权限s
- setgid位t
- 粘性
在我们的示例中,rw-r--r--
表示用户可以读取和写入文件,而组用户和其他人只能读取文件。权限字符后的数字 1 是硬链接到该文件的数量。
接下来的两个字段 root root
显示文件所有者和组,后面的数字 337
代表文件的大小,以字节为单位显示。如果要以人类可读的格式打印文件大小,请使用此选项 -h
。您可以使用 chmod
命令更改文件所有者。
接下来的 Oct 4 11:31
是一个文件最后修改日期和时间。最后一列是文件的名称。
显示隐藏文件
默认情况下,ls
命令不会显示隐藏文件。在 Linux 中,隐藏文件是以点(.)开头的任何文件。
要显示所有文件,包括隐藏文件,请使用以下 -a
选项:
ls -la ~/
输出如下
drwxr-x--- 10 linuxize linuxize 4096 Feb 12 16:28 .
drwxr-xr-x 18 linuxize linuxize 4096 Dec 26 09:21 ..
-rw------- 1 linuxize linuxize 1630 Nov 18 2017 .bash_history
drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 bin
drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 Desktop
drwxr-xr-x 4 linuxize linuxize 4096 Dec 12 2017 .npm
drwx------ 2 linuxize linuxize 4096 Mar 4 2018 .ssh
我们还使用该 -l
选项显示所有文件的详细信息。
如何排序ls输出
正如我们已经提到的,默认情况下,ls命令按字母顺序列出文件。
--sort=extension
(或-X
) - 按条目扩展名按字母顺序排序--sort=size
(或-S
) - 按文件大小排序--sort=time
(或-t
) - 按修改时间排序--sort=version
(或-v
) - 文本中的自然类型(版本)数字
如果要以反向排序顺序获取结果,请使用该 -r
选项。
例如,要对目录 /var
中的文件按修改时间反向排序顺序进行排序,您可以使用:
ls -ltr /var
值得一提的是,ls
命令没有显示目录内容占用的总空间。
递归列出子目录
使用该 -R
参数告诉 ls
命令显示子目录的内容, 如下面的例子:
ls -R
结论
到目前为止,您应该已经很好地理解了如何使用Linux ls命令。有关其他 ls
选项的更多信息,请访问 GNU Coreutils 页面