学习
实践
活动
专区
工具
TVP
写文章

把 Linux 上的文件列表和排序玩出花来

导读:Linux 命令可以提供文件的详细信息,也可以自定义显示的文件列表,甚至可以深入到文件系统的目录中,只要你愿意看。

本文字数:5090,阅读时长大约:6分钟

https://linux.cn/article-12560-1.html

作者:Sandra Henry-stocker

译者:Xingyu.Wang

Linux 命令可以提供文件的详细信息,也可以自定义显示的文件列表,甚至可以深入到文件系统的目录中,只要你愿意看。

在 Linux 系统上,有许多方法可以列出文件并显示它们的信息。这篇文章回顾了一些提供文件细节的命令,并提供了自定义文件列表的选项,以满足你的需求。

大多数命令都会列出单个目录中的文件,而其他命令则可以深入到文件系统的目录中,只要你愿意看。

当然,最主要的文件列表命令是ls。然而,这个命令有大量的选项,可以只查找和列出你想看的文件。另外,还有find可以帮助你进行非常具体的文件搜索。

按名称列出文件

最简单的方法是使用ls命令按名称列出文件。毕竟,按名称(字母数字顺序)列出文件是默认的。你可以选择ls(无细节)或ls -l(大量细节)来决定你看到什么。

如果你想一次查看一屏的列表,可以将ls的输出用管道送到  命令中。

按相反的名字顺序排列文件

要按名称反转文件列表,请添加 (反转(Reverse))选项。这就像把正常的列表倒过来一样。

按文件扩展名列出文件

ls

命令不会按内容分析文件类型,它只会处理文件名。不过,有一个命令选项可以按扩展名列出文件。如果你添加了  (扩展名(eXtension))选项,ls将在每个扩展名类别中按名称对文件进行排序。例如,它将首先列出没有扩展名的文件(按字母数字顺序),然后是扩展名为 、、 等的文件。

只列出目录

默认情况下,ls命令将同时显示文件和目录。如果你想只列出目录,你可以使用 (目录(Directory))选项。你会得到一个像这样的列表:

按大小排列文件

如果你想按大小顺序列出文件,请添加 (大小(Size))选项。但请注意,这实际上不会显示文件的大小(以及其他文件的细节),除非你还添加 (长列表(Long listing))选项。当按大小列出文件时,一般来说,看到命令在按你的要求做事情是很有帮助的。注意,默认情况下是先显示最大的文件。添加  选项可以反过来(即ls -lSr)。

按属主列出文件

如果你想按属主列出文件(例如,在一个共享目录中),你可以把ls命令的输出传给 ,并通过添加  来按第三个字段排序,从而挑出属主一栏。

事实上,你可以用这种方式对任何字段进行排序(例如,年份)。只是要注意,如果你要对一个数字字段进行排序,则要加上一个 ,如 ,否则你将按字母数字顺序进行排序。这种排序技术对于文件内容的排序也很有用,而不仅仅是用于列出文件。

按年份排列文件

使用 (修改时间(Time modified))选项按年份顺序列出文件 —— 它们的新旧程度。添加  选项,让最近更新的文件在列表中最后显示。我使用这个别名来显示我最近更新的文件列表。

请注意,文件的更改时间和修改时间是不同的。(更改时间(time Changed))和 (修改时间)选项的结果并不总是相同。如果你改变了一个文件的权限,而没有改变其他内容, 会把这个文件放在ls输出的顶部,而  则不会。如果你想知道其中的区别,可以看看  命令的输出。

按组别列出文件

要按关联的组别对文件进行排序,你可以将一个长列表的输出传给  命令,并告诉它在第 4 列进行排序。

按访问日期列出文件

要按访问日期(最近访问的日期在前)列出文件,使用  选项。 强制“按访问日期”排列顺序。

单行列出多个文件

有时,精简的文件列表更适合手头的任务。ls命令甚至有这方面的选项。为了在尽可能少的行上列出文件,你可以使用  来用逗号分隔文件名,就像这个命令一样:

喜欢用空格?使用  代替。

增加搜索的深度

虽然ls一般只列出单个目录中的文件,但你可以选择使用  选项(递归(Recursively))地列出文件,深入到整个目录的深处。

另外,你也可以使用find命令,对深度进行限制或不限制。在这个命令中,我们指示find命令只在三个层次的目录中查找:

选择 ls 还是 find

当你需要列出符合具体要求的文件时,find命令可能是比ls更好的工具。

与ls不同的是,find命令会尽可能地深入查找,除非你限制它。它还有许多其他选项和一个  子命令,允许在找到你要找的文件后采取一些特定的行动。

总结

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200829A03M0D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券