在Linux系统中有许多用于查找文件的命令,但是在查找文件时也可以部署大量的选项。
例如,你可以找到文件不仅仅是他们的名字,但被主人和/或团体,他们的年龄,他们的大小,分配的权限,最后一次访问,甚至相关的索引节点和文件是否属于一个帐户或组在系统中不再存在等等。
您还可以指定搜索应该从哪里开始,搜索应该深入到文件系统的什么地方,以及搜索结果将告诉您关于它找到的文件的多少信息。
所有这些条件都可以由找到命令。
下面提供了根据这些标准查找文件的示例。在一些命令中,错误(例如试图列出您没有读权限的文件)将被发送到/ dev / null所以,我们不必看他们。在其他情况下,我们会简单地以root身份运行,以避免这个问题。
请记住,还有其他选项。这篇文章涵盖了很多方面,但并不是所有的方面找到命令可以帮助查找文件给你。
选择一个起点
与找到,你可以选择一个点或者从你现在的位置开始。要选择起始点,请在“查找”后面输入。例如,“查找/usr”或“查找。/bin”将从/ usr目录或本而“find ~”将在主目录中启动,即使您当前位于文件系统中的其他位置。
采摘你想看到什么
最常用的搜索策略之一是按名称搜索文件。这需要使用-名称选项。
默认情况下,找到将显示它找到的文件的完整路径。这和相加是一样的安全性你的命令。如果你想看到与文件相关的细节 - 其长度,权限等,你就需要添加-ls到年底你找到命令。
$ find -name tryme -ls 917528 4 -rwx- 1 shs shs 139 2019年4月8日/home/shs/bin/tryme
您还可以使用子字符串查找文件。例如,如果您将上面示例中的“tryme”替换为“try*”,您将发现所有名称以“try”开头的文件。
按名称查找文件可能是最典型的利用找到命令,但有这么多其他的方式来寻找文件和很好的理由想要。下面的小节展示了如何使用其他可用的标准。
此外,当搜索文件的大小,组,inode等,你可能会想要一些确认,找到的文件符合你正在寻找的。使用-ls显示详细信息的选项通常非常有用。
按大小查找文件
按大小查找文件需要使用造选择和一点技巧与规格。如果您指定-size 189B例如,您要查找的文件是189块长,而不是189字节。对于字节,您需要使用-size 189C(字符)。如果你指定造200 w,你会找到200个单词的文件——这些单词是“双字节增量”,而不是“那些我们都对彼此说过的话”。您还可以通过提供以千字节(k)、兆字节(M)和千兆字节(G)为单位的大小来查找文件。
在大多数情况下,Linux用户将是那些比一些选择大小的文件搜索。例如,要找到比一个千兆字节的文件,你可以使用这样的命令,其中的1G +的意思是“比千兆字节的”:
$查找-size + 1G -ls 2>的/ dev / null的787715 1053976 -rw-RW-R-- 1个SHS SHS 1079263432 2018年12月21日./backup.zip 801834 1052556 -rw-RW-R-- 1个SHS SHS 10778095252018年12月21日./2019/hold.zip
通过inode #查找文件
您可以用来保持文件的元数据(即一切,但文件内容和文件名)的索引节点查找文件。
$找到-inum 919674 -ls 2>的/ dev / null的919674 4 -rw-RW-R-- 1个SHS SHS 512 12月27日15时25 ./bin/my.log
寻找与特定文件所有者或组文件
由所有者或组查找文件也非常简单。这里我们使用sudo来解决权限问题。
$ sudo find /home -用户nemo -name "*。png"-ls 1705219 4 drwxr-xr-x 2尼莫尼莫4096 1月28日08:50 /home/ nemo// me
在此命令,我们寻找那些被称为“管理员”多用户群体所拥有的文件。
查找/tmp -组管理员-ls 262199 4 -rwxr-x- 1 dory管理员2月16日27日18:57 /tmp/testscript
发现无主或文件组
属性查找不属于当前在系统上设置的任何用户的文件-nouser如在下面的命令显示选项。
#发现的/ tmp -nouser -ls 262204 4 -rwx ------ 1 1016 1016 17年2月17日16时42分的/ tmp /你好
请注意,清单显示了老用户的UID和GID - 清楚地表明该用户未在系统上定义。这种命令的会发现,被其帐户,至今已在系统或移除用户帐户后未删除的主目录删除其他超主目录可能创建的文件。同样的,-nogroup选项会发现这样的文件 - 尤其是当这些用户相关的组的唯一成员。
按上次更新时间查找文件
在这个命令中,我们在特定用户的主目录中查找在过去24小时内更新过的文件。该须藤被用来允许搜索其他用户的主目录。
$ sudo find /home/nemo -mtime -1 /home/nemo /home/nemo/snap/cheat /home/nemo/tryme
通过查找权限时,上次更改的文件
该-ctime选项可以帮助你发现有一些参考的时间内改变了他们的状态(例如,权限)的文件。这里是寻找一个有过去的一天之内的权限更改文件的示例:
发现美元。-ctime -1 -ls 787987 4 -rwxr-xr-x 1 shs shs 2月11日07:31 ./尝试
请记住,日期和时间显示反映最后一次更新文件的内容。你将不得不使用命令状统计看到有一个文件(文件的创建,修改和状态的变化)相关联的所有三次。
根据最后访问时间查找文件
在此命令中,我们将查找在过去两天内使用一次选项。
$找到-name “* .PDF” -atime -2 ./Wingding_Invites.pdf
根据文件相对于另一个文件的年龄查找文件
您可以使用-更新选项来查找比其他文件更新的文件。
发现美元。更新的数字1 -ls 786434 68 drwxr-xr-x 67 shs shs 69632 2月16日19:05。2月16日11:06 ./snap/cheat 791846 4 -rw-rw-r- 1 shs shs 649 Feb 13 14:26 ./dig
有没有相应的-older选项,但你可以得到类似的结果与!- newer(即,不更新),这意味着几乎同样的事情。
按类型查找文件
按文件类型查找文件时,有很多选择—常规文件、目录、块和字符文件等等。下面是文件类型选项的列表:
B嵌段(缓冲)特殊c字符(未缓冲的)特殊d目录p命名管道(FIFO)的F常规文件升符号链路S1插座
这里是寻找符号链接的例子:
发现美元。lrwxrwxrwx 11 shs shs 2019年4月10日11日。/火山->火山
如何限制深深觉得应该看
该-mindepth和maxdepth选项控制搜索进入文件系统的深度(从当前位置或起始点)。
$发现-maxdepth 3 -name “*循环” ./bin/save/oldloop ./bin/long-loop ./private/loop
仅在为空时查找文件
在此命令,我们看空文件,但不超过目录及其子目录进一步。
发现美元。-maxdepth 2 -empty型的F -ls 917517 0 -rw-RW-R-- 1个SHS SHS 0 09月23日11:00 ./complaints/newfile 792050 0 -rw-RW-R-- 1个SHS SHS 0 10月4日19:02 ./junk
通过权限查找文件
属性查找具有特定权限集的文件-perm选项。在下面的例子中,我们正在寻找只为普通文件(型的F),以避免看到默认情况下被授予这些权限的符号链接,即使它们所引用的文件是受限制的。
$找到-perm 777型的F -ls发现:“./.dbus”:权限被拒绝798748 4 -rwxrwxrwx 1 SHS SHS 15 2019年3月28日./runme
使用find来帮助您删除文件
您可以使用find命令来定位并然后如果你使用一个命令像这样的删除文件:
发现美元。-name邵仁枚-exec RM {} \;
该{}代表分别位于由搜索条件的文件的名称。
一个非常有用的选项,以取代-exec与对吧。当你这样做的时候,找到将在删除任何文件之前请求确认。
发现美元。-name邵仁枚-ok室射频{} \;?
删除文件是不是唯一的东西,对吧和rm我可以帮你。例如,您可以复制、重命名或移动文件。
要有效地使用find命令,确实有很多选项,而且毫无疑问,本文还没有涉及到其中一些。我希望你已经找到一些新的,特别有前途的。