ls
是任何 Linux 用户都应该知道的基本命令之一。
The ls
命令列出文件系统中的文件和目录,并显示有关它们的详细信息。它是安装在所有 Linux 发行版上的 GNU 核心实用程序包的一部分。
本文将通过实际示例和最常见 ls 选项的详细说明向您展示如何使用 ls 命令。
如何使用ls
命令#
语法为ls
命令如下:
当不带选项和参数使用时,ls
显示目录中所有文件的名称列表当前工作目录
:
ls
这些文件按字母顺序列出,尽可能多的列可以适合您的终端:
cache db empty games lib local lock log mail opt run spool tmp
要列出特定目录中的文件,请将目录路径作为参数传递给ls
命令。例如,要列出的内容/etc
目录,您可以输入:
ls /etc
您还可以传递以空格分隔的多个目录和文件:
ls /etc /var /etc/passwd
如果您登录的用户没有该目录的读取权限,您将收到一条消息:ls
无法打开目录:
ls /root
ls: cannot open directory '/root': Permission denied
The ls
命令有多个选项。在下面的部分中,我们将探讨最常用的选项。
默认输出为ls
命令仅显示文件和目录的名称,信息量不大。
The -l
(小写 L)选项告诉ls
以长列表格式打印文件。
当使用长列表格式时,您可以看到以下文件信息:
- 文件类型。
- 文件权限。
- 文件的硬链接数。
- 文件所有者。
- 文件组。
- 文件大小。
- 日期和时间。
- 文件名。
这是一个例子:
ls -l /etc/hosts
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
让我们解释一下输出中最重要的列。
第一个字符显示文件类型。在此示例中,第一个字符是-
,表示常规文件。其他文件类型的值如下:
-
-
- 常规文件。
-
b
- 阻止特殊文件。
-
c
- 角色特殊文件。
-
d
- 目录。
-
l
- 符号链接。
-
n
- 网络文件。
-
p
- FIFO.
-
s
- 插座。
接下来的九个字符显示文件权限。前三个字符用于用户,接下来的三个字符用于组,最后三个字符用于其他人。您可以使用以下命令更改文件权限chmod命令。权限字符可以采用以下值:
-
r
- 读取文件的权限。
-
w
- 写入文件的权限。
-
x
- 执行文件的权限。
-
s
- setgid
bit.
-
t
- sticky
bit.
在我们的例子中,rw-r--r--
表示用户可以读写该文件,组和其他人只能读取该文件。号码1
权限字符后面是该文件的硬链接数。
接下来的两个字段root root
显示文件所有者和组,然后是文件的大小(337
),以字节为单位显示。使用-h
如果您想以人类可读的格式打印尺寸,请选择此选项。您可以使用以下命令更改文件所有者chown命令。
Oct 4 11:31
是最后一次文件修改日期和时间。
最后一列是文件的名称。
显示隐藏文件#
默认情况下,ls
命令不会显示隐藏文件。在 Linux 中,隐藏文件是指以点 (.
).
要显示包括隐藏文件在内的所有文件,请使用-a
option:
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
对输出进行排序#
正如我们已经提到的,默认情况下,ls
命令按字母顺序列出文件。
The --sort
选项允许您按扩展名、大小、时间和版本对输出进行排序:
-
--sort=extension
(or -X
) - 按扩展名字母顺序排序。
-
--sort=size
(or -S
) - 按文件大小排序。
-
--sort=time
( or -t
) - 按修改时间排序。
-
--sort=version
(or -v
) - 版本号的自然排序。
如果您想以相反的排序顺序获得结果,请使用-r
option.
例如,对文件进行排序/var
按修改时间排列的目录,按照您将使用的相反排序顺序:
ls -ltr /var
值得一提的是ls
命令不显示目录内容占用的总空间。到获取目录的大小, 使用du
命令。
递归列出子目录#
The -R
选项告诉ls
命令递归显示子目录的内容:
ls -R
结论#
The ls
命令列出有关文件和目录的信息。
欲了解更多信息ls
访问GNU Coreutils 页面或输入man ls
在您的终端中。
如果您有任何问题或反馈,请随时发表评论。