在Linux系统上有很多方法可以列出文件并显示有关它们的信息。这篇文章回顾了一些提供文件详细信息的命令,并提供了根据您的需要自定义文件列表的选项。大多数命令在单个目录中列出文件,而其他命令可以根据需要深入到文件系统的目录中。当然,主要的文件列出命令是ls。但是,此命令有大量选项可以查找并仅列出您要查看的文件。此外,还有find可以帮助您进行非常具体的文件搜索。按名称列出文件的最简单方法是使用ls命令按名称列出文件。毕竟,按名称(字母数字顺序)列出文件是默认设置。您可以选择ls(无详细信息)或ls-l(大量详细信息)来决定您看到的内容。$ls|head-68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ls-l|head-6-rw-rw-r--1shsshs10886Mar2220198pgs.pdf-rw-rw-r--1shsshsYou2840039-Awsk11--1shsshs38282Jan242019alien.pdf-rw-rw-r--1shsshs97358May192019Annual_Meeting_20190602.pdf-rw-rw-r--1shsshs18115234Apr1617:36bigfile.bz2drwxrwxr-x4shsshs8052736Jul1013:17bin如果你想一次查看一屏的列表,可以将lsTheoutputofis传送到更多命令。以名称的相反顺序列出文件要按名称颠倒文件列表,请添加-r(反向)选项。这就像把一个普通的列表颠倒过来。$ls-r$ls-lr按文件扩展名列出文件ls命令不按内容分析文件类型,它只处理文件名。但是,有一个命令选项可以按扩展名列出文件。如果添加-X(扩展名(eXtension))选项,ls将在每个扩展名类别中按名称对文件进行排序。例如,它将首先列出没有扩展名的文件(按字母数字顺序),然??后是扩展名为.1、.bz2、.c等的文件。仅列出目录默认情况下,ls命令将同时显示文件和目录。如果只想列出目录,可以使用-d(目录)选项。你会得到这样的列表:$ls-d*/1/backups/modules/projects/templates/2/html/patches/public/videos/bin/new/private/save/filesbysize如果你想按大小顺序列出文件,添加-S(大小)选项。但请注意,除非您还添加-l(长列表)选项,否则这实际上不会显示文件大小(和其他文件详细信息)。按大小列出文件时,查看命令执行您希望它执行的操作通常很有帮助。请注意,默认情况下首先显示最大的文件。添加-r选项则相反(即ls-lSr)。$ls-lStotal959492-rw-rw-r--1shsshs357679381Sep192019sav-linux-free-9.tgz-rw-rw-r--1shsshs103270400Apr1617:38bigfile-rw-rw-r--1shsshs79117862Oct52019Nessus-8.7.1-ubuntu1110_amd64.deb按按所有者列出文件如果你想按所有者列出文件(例如,在共享目录中),你可以通过ls命令的输出进行排序并添加-k3按第三个字段排序,从而选择Outofthemain柱子。$ls-l|sort-k3|moretotal56-rw-rw-r--1doryshs0Aug2312:27tasklistdrwx------2gdmgdm4096Aug2117:12tracker-extract-files.121srwxr-xr-x1rootroot0Aug2117:12ntf_listenerc0c6b8b4567drwxr-xr-x2rootroot4096Aug2117:12hsperfdata_root^|事实上,您可以通过这种方式对任何字段进行排序(例如,年份)。请注意,如果您在数字字段上排序,请添加一个n,例如-k5n,否则您将按字母数字排序。这种排序技术对于排序文件内容也很有用,而不仅仅是用于列出文件。按年份排列的文件使用-t(修改时间)选项按时间顺序列出文件——它们的年龄。添加-r选项以使最近更新的文件位于列表的最后。我使用这个别名来显示我最近更新的文件列表。$aliasrecent='ls-ltr|tail-8'注意文件的更改时间和修改时间是不同的。-c(更改时间)和-t(修改时间)选项的结果并不总是相同。如果您仅更改文件的权限,-c将把该文件放在ls输出的顶部,但-t不会。如果您想知道区别,请查看stat命令的输出。$statckacctFile:ckacctSize:200Blocks:8IOBlock:4096regularfileDevice:801h/2049dInode:829041Links:1Access:(0750/-rwxr-x---)Uid:(1000/shs)Gid:(1000/shs)Access:2020-08-2016:10:11.063015008-0400Modify:2020-08-1707:26:34.579922297-0400<==contentchangesChange:2020-08-2409:36:51.699775940-0400<==contentorpermissionchangesBirthDocuments按关联组排序:-要排序按组文件,您可以将长列表的输出传递给排序命令并告诉它在第4列排序。$ls-l|sort-k4按访问日期列出文件按访问日期列出文件(最近的在前),使用-ltu选项。u强制“按访问日期”排序。$ls-ltutotal959500-rwxr-x---1shsshs200Aug2409:42ckacct<==最近使用-rw-rw-r--1shsshs1335Aug2317:45lte在一行中列出多个文件手头的任务。ls命令甚至为此提供了选项。要在尽可能少的行上列出文件,您可以使用--format=comma以逗号分隔文件名,如以下命令:$ls--format=comma1,10,11,12,124,13,14,15,16pgs-landscape.pdf,16pgs.pdf,17,18,19,192.168.0.4,2,20,2018-12-23_OoS_2.pdf,2018-12-23_OoS.pdf,20190512_OoS.pdf,'2019_HOHO_applicationworking.pdf'...首选空格?请改用--format=across。$ls--format=acrossz*zzipzipfileszipfiles1.batzipfiles2.batzipfiles3.batzipfiles4.batzipfiles.batzoom_amd64.debzoomap.pdfzoom-mtg增加搜索深度虽然ls通常只列出单个目录中的文件,但您可以选择使用-R选项(List$ls-Rzzzzzz|grep-v"^$"zzzzzz:zzzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping此外,还可以使用find命令限制或不限制深度,在这条命令中,我们指示find命令只在三级目录中搜索:/zzzz/zzz/zzz选择ls或find当您需要列出满足特定要求的文件时,find命令可能是比ls更好的工具。与ls不同,find命令会尽可能深入地查找,除非您对其进行限制。它还具有许多其他选项和一个-exec子命令,允许在找到您要查找的文件后执行一些特定操作。总结ls命令有很多用于列出文件的选项。了解他们。您可能会找到一些您喜欢的选项。
