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:~#
如果要搜索大小超过1MB的文件,则需要使用加号+符号:
root@linuxidc:~# find . -type f -size +1M
您甚至可以搜索大小范围内的文件,例如以下命令将查找3到4 MB之间的所有文件:
root@linuxidc:~# find . -type f -size +3M -size 4M
按修改日期查找文件
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