当前位置: 首页 > 科技观察

如何在Linux中使用查找命令

时间:2023-03-14 20:22:31 科技观察

使用正确的参数,查找命令是一种在系统上查找数据的强大而灵活的方法。在最近的一篇文章中,LewisCowles介绍了find命令。find是您日常工具箱中功能更强大、更灵活的命令行工具之一,因此值得花额外的时间。在最简单的情况下,find遵循一条路径来查找某些东西。例如:find/将查找(并打印出)系统中的每个文件。由于一切都是文件,因此您最终会得到大量需要清理的输出。这可能无法帮助您找到所需的内容。您可以更改路径参数以缩小范围,但这不会比使用ls命令更有帮助。所以你需要考虑你要找的是什么。也许您想在您的主目录中找到所有JPEG文件。-name参数允许您将结果限制为与给定模式匹配的文件。find~-name'*jpg'但是等等!如果其中一些是大写扩展怎么办?-iname与-name类似,但不区分大小写。find~-iname'*jpg'效果很好!但是8.3命名方案太旧了。某些图像可能具有.jpeg扩展名。幸运的是,我们可以将模式与“或”(表示为-o)结合起来。find~(-iname'jpeg'-o-iname'jpg')我们越来越近了。但是,如果您有一些以jpg结尾的目录怎么办?(为什么将目录命名为bucketofjpg而不是pictures超出了本文的范围。)我们修改命令以使用-type参数查找文件。find~\(-iname'*jpeg'-o-iname'*jpg'\)-typef或者,也许你想找到那些名字奇怪的目录以便以后重命名它们:find~\(-iname'*jpeg'-o-iname'*jpg'\)-typed你最近拍了很多照片,所以让我们把范围缩小到上周改变的文件。find~\(-iname'*jpeg'-o-iname'*jpg'\)-typef-mtime-7可以根据文件改变时间(ctime),修改时间(mtime)或访问时间(atime)status执行时间过滤。这些以天为单位,因此如果您想要更细粒度的控制,可以用分钟来表示(分别为cmin、mmin和amin)。除非您确切地知道您想要什么时间,否则您可能会将数字放在+(大于)或-(小于)之后。但也许你不关心你的照片。也许你的磁盘空间不足,所以你想在日志目录中找到所有巨大的(让我们定义为“大于1GB”)文件:find/var/log-size+1G或者,也许你想在/databcotton拥有的所有文件:find/data-ownerbcotton也可以根据权限查找文件。也许您想在您的主目录中拥有所有可读文件,以确保您不会过度共享。find~-perm-o=r本文仅粗略介绍了find的功能。将测试条件与布尔逻辑相结合,为您提供了难以置信的灵活性,可以准确地找到您正在寻找的文件。使用-exec或-delete等参数,您可以告诉find根据找到的内容执行操作。你有什么最喜欢的查找表达式吗?在评论中分享它们!