智传网优云课堂,专注分享IT技术
与IT技术爱好者一起共同学习进步

Linux ls命令详解

1. 前言

本文主要详细讲解Linux ls命令的日常使用方法。

每当需要在Linux的命令行上查看目录的内容时,都会使用ls命令。它列出了按字母顺序排列的内容。

虽然这是该工具的基本用法,但它提供了大量特性(以命令行选项的形式),可以在几种情况下帮助您。在本教程中,我们将通过一些易于理解的示例来讨论这些命令行选项的用法。

2. 如何查看隐藏的文件或目录

ls命令默认情况下不显示隐藏的文件/目录。但是,您可以使用-a选项强制工具这样做。因此,要列出当前目录中的所有文件/目录(包括隐藏的文件/目录即名称以点’.’开头的文件/目录),请运行以下命令:

ls

如何查看隐藏的文件或目录

3. ls命令查看文件输出结果忽略当前目录(.)和上一层的目录(..)

当使用-a命令行选项时,当前目录(.)和上一层目录(..)也会出现。如果希望ls在输出中不显示这些,可以使用-A选项。

ls命令查看文件输出结果忽略当前目录(.)和上一层的目录(..)

以上输出中,没有显示当前目录(.)及上一层目录(..)

4. 如何以相反的顺序显示文件名或目录名

默认情况下,ls命令按字母顺序显示输出中的文件。但是如果您有需要,您还可以使该工具以相反的顺序显示文件。为此,您必须使用该工具的-r命令行选项。

ls -r

如何以相反的顺序显示文件或或目录名

通过上图,你可以看到zcwyou.rar这个文件显示在前面。

5. 如何根据文件扩展名对ls命令输出进行排序

要根据文件扩展名按字母顺序排列ls命令输出,请使用-X命令行选项。

如何根据文件扩展名对ls命令输出进行排序

上图中可以看到,排序是按文件后缀名首字母的反顺序显示的。

6. 如何根据修改时间对文件进行排序

如果您想快速知道最近修改了哪些文件或目录,那么可以使用ls命令的-t选项。

ls -t

-t选项首先显示最新最新修改的目录或目录。

按时间排列文件并显示详细信息

ls -lt

按时间排列文件并显示详细信息

上图中,第一个文件是最新的。

7. 如何递归列出当前目录子目录所有的文件

如果需要,还可以让ls命令显示子目录的内容。这可以使用-R命令行选项来完成。

ls -R 

如何递归列出当前目录子目录所有的文件

上图使用ls -R命令显示/etc/httpd及其子目录里所有的文件。

8.如何列出文件名及其inode编号

ls命令还允许列出文件/目录名称及其各自的inode编号。该工具提供-i命令行选项来访问该特性。

ls -i

如何列出文件名及其inode编号

通过上图可以看出,文件名前面带数字,是Linux文件的inode编号

9. 如何显示文件和目录的详细信息

ls命令还可以打印关于文件和目录的详细信息。要启用这种输出格式(也称为长清单格式),需要使用-l命令行选项。

如何显示文件和目录的详细信息

正如您在上面的屏幕截图中所看到的,输出分为8列。以下是这些栏目传达的信息:
第一列显示文件权限
第二列显示硬链接的数量
第三个和第四个是所有者名和组名
第五是文件大小
第六和第七是最后修改的日期和时间
最后一个是文件的名称。

10. 如何显示作者信息

在生成长格式目录清单时,还可以要求ls命令列出每个文件的作者。为此,必须将—author选项与-l组合。

ls -l --author

如何显示作者信息

正如您在上面的屏幕截图中所看到的,新添加的第五列是针对作者的。

注意:GNU官方网站说:“在GNU/Hurd中,文件作者可以与他们的所有者不同,但是在其他操作系统中,两者是相同的。”

11. 如何打印非图形字符的c样式转义(如换行和空格)

假设当前目录包含一个名称具有换行字符的文件。如果尝试列出该目录的内容,则会显示包含问号(?)的特定文件名,该问号(?)表示不可打印字符。

但是,ls命令提供了一个选项,当使用该选项时,可以为不可打印的字符打印c样式的转义字符。问题中的选项是-b。

因此,您可以在上面的屏幕截图中看到,-b选项导致ls为换行字符打印“\n”。类似地,在这种模式下,空格由'[space]’表示。

如何打印非图形字符的c样式转义(如换行和空格)

留意上图new file.txt这个文件,表明名字名中有空隔。

12. 如何以字节以外的单位打印文件大小

如果您想知道文件的大小,就必须使用前面第3点中讨论的-l选项(它支持长清单格式)。默认情况下,大小以字节显示。然而,在某些情况下,您可能想要以千字节或兆字节为单位的大小。

ls命令有一个选项,允许您指定要显示文件大小的单元。例如,如果希望以千字节为单位显示大小,可以运行以下命令:

ls -l --block-size=k [file-name]

请记住,使用-l命令行选项生成的大小是实际的文件大小,或者数据的大小。如果您想知道文件系统上文件的大小或分配的大小(它可以是不同的),那么您必须使用-s命令。

ls -s --block-size=k [file-name]

13. 如何使ls在输出结果中只显示文件名和文件大小

如果希望ls命令输出只包含文件/目录名及其各自的大小,那么可以使用-h选项和-l-s命令行选项组合使用。

例如:

ls -l -h

14. 如何使ls命令不在输出结果中列出备份文件

在Linux中,备份文件用以波浪号(~)结尾的名称表示。ls命令提供了一个选项(-B),如果你有需要,您可以使用该选项要求工具不要在输出中列出备份文件。

如何使<code>ls</code>命令不在输出结果中列出备份文件

15. 使用ls命令显示文件分类

使用-F显示文件分类:

使用ls命令显示文件分类

上图输出结果中,文件名后面带一些符号,以下是它们所表明的信息:

@表示符号链接
*表示可执行文件
=表示套接字文件
|表示一个命名管道
>表示一扇门
/表示一个目录

16. 如何更改ls命令输出格式

如果需要,还可以更改ls命令的输出格式。该工具的--format选项允许您这样做。此选项要求您传递一个值,该值指示您想要的输出格式类型。可用的值有:“verbose”或“long”、“逗号”、“horizontal”或“across”、“vertical”和“single-column”。

例如,当需要逗号分隔的输出时,使用--format=commas:

文件以逗号分隔的形式显示

通过上面的命令可以看到,文件以逗号分隔的形式显示。

类似地,当您希望输出显示在单个列中时,使用--format=single-column

文件以分行的形式显示

通过上图可以看到,文件以分行的形式显示。

17. 如何使用ls使用隐藏特定类型的文件

如果有需要,还可以强制ls命令在输出中隐藏特定类型的文件。--hide选项(需要传递一个shell模式)允许您这样做。例如,如果不希望工具在输出中不显示.txt文件,应该运行以下命令:

ls --hide=*.txt

下面的屏幕截图显示了没有和带有--hide选项的输出。

如何使ls命令隐藏特定类型的文件

通过上图可以看到,执行第二条命令显示出来的结果并没有带.txt文件。

18. 结论

虽然ls是一个非常基本的命令,但是如何有效地使用它取决于用户对该工具提供的命令行选项的了解程度。请尝试我们在本教程中讨论的选项,如果有任何疑问或查询,请访问手册页面。

赞(0)
分享到: 更多 (0)

学习QQ群:557371664

关注微信公众号自助视频学习

评论 抢沙发

评论前必须登录!