如何使用find命令在Linux中查找文件(2)

root@linuxidc:~# find . -type f -size -1M
./.local/share/zeitgeist/fts.index/flintlock
./.local/share/Trash/files/wine-Ubuntu-wine-builds-artful.list.save
./.local/share/gnome-settings-daemon/input-sources-converted
./.mozilla/firefox/jrqxh55p.default/SecurityPreloadState.txt
./.mozilla/firefox/jrqxh55p.default/AlternateServices.txt
./.mozilla/firefox/jrqxh55p.default/.parentlock
./.config/enchant/en_US.exc
./.config/enchant/en_US.dic
root@linuxidc:~#

如何使用find命令在Linux中查找文件

如果要搜索大小超过1MB的文件,则需要使用加号+符号:

root@linuxidc:~# find . -type f -size +1M

您甚至可以搜索大小范围内的文件,例如以下命令将查找3到4 MB之间的所有文件:

root@linuxidc:~# find . -type f -size +3M -size 4M

如何使用find命令在Linux中查找文件

按修改日期查找文件

find命令还可以根据上次修改,访问或更改时间搜索文件。

与按尺寸搜索时相同,我们也可以使用加号和减号来指定大于或小于。

让我们说几天前你修改了一个dovecot配置文件,但你忘记了文件名。您可以轻松过滤/home/linuxidc/conf.d/目录中以.conf结尾的所有文件,并在过去10天内修改过:

find /home/linuxidc/conf.d -name "*.conf" -mtime 10

以下是使用-daystart选项根据修改日期过滤文件的另一个示例。列出/home目录中20天或更久以前修改过的所有文件:

find /home -mtime +20 -daystart

按权限查找文件

如果要使用find命令根据文件权限过滤文件,则需要使用-perm参数。

要在/home/linuxidc/html目录中查找权限为775的所有文件,您将使用:

find /home/linuxidc/html -perm 644

您可以在数字模式前加上减号 - 或斜杠/。

如果使用/作为前缀,则至少一个类别(用户,组或其他)必须至少为文件匹配设置相应的位。请考虑以下示例命令:

find . -perm 444

上述命令将匹配为用户,组或其他人设置了读权限的所有文件。

如果使用 - 作为前缀,则必须至少设置要匹配的文件。

以下命令将搜索对其所有者具有读取和权限的文件,但该组和其他用户可以读取但不写入的文件:

find . -perm -664

按所有者查找文件

要查找特定用户或组拥有的文件,可以使用-user和-group选项。

例如,要搜索用户linuxidc拥有的所有文件和目录,只需运行:

find / -user linuxidc

这是更高级的示例,假设您要查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为linuxmi:

find / -user www-data -type f  -exec chown linuxmi {} \;

查找和删除文件

要删除所有匹配的文件,请将参数-delete添加到匹配表达式的末尾。

仅当您确定结果仅与要删除的文件匹配时,请确保使用此选项。在使用-delete选项之前打印文件总是一个好主意。

例如,要删除/home/linuxidc/中以.temp结尾的所有文件,您将使用:

find /home/linuxidc/ -name `*.temp` -delete

总结

在本教程中,您学习了如何根据各种标准使用Linux查找实用程序,现在您已基本了解如何在Linux系统上查找文件。

如果您有任何问题或意见,请在下面留言。 

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12658.html