如果你不了解用于简化工作的正确工具,那么在Linux系统中搜索特定文件可能会非常麻烦,也许有配置文件,你不知道在哪里找到它,你只需要搜索它,find命令将帮助你找到它,可参考在Linux系统中使用ls、tree和find快速定位文件一文。此命令只搜索目录层次结构中的文件,它是一个功能强大的命令,可以根据各种标准搜索文件,例如权限、修改时间、所有权、大小。它还可以查找文件并对其进行修改,例如更改其权限甚至删除它们。
Linux find命令简化的语法 $ find [options] [path or directory…] [your-expression]
使用find命令的示例 1.搜索具有给定扩展名的文件 在/home/tech/目录中搜索扩展名为.pdf的所有文件: $ find /home/tech/ -name "*.pdf" 在当前目录中搜索扩展名为.pdf的所有文件: $ find . -name "*.pdf" 2.使用-type选项按类型搜索 可以使用-type选项指定多个参数,如下所示: f:搜索常规文件 d:搜索目录 l:搜索符号链接 c:搜索字符设备 b:搜索块设备 p:搜索命名管道(FIFO) s:搜索套接字 在多个目录中搜索httpd.conf文件: $ find /home /etc /var -name httpd.conf -type f 使用名称django查找根(/)中的所有目录: $ find / -type d -name django 3.查找具有特定权限的文件 此命令将查找模式为644的文件并将其打印出来: $ find /home -type f -perm 0644 -print 4.根据大小定位文件 要查找大小超过10 Mebibyte的文件并按大小排序: find . -size +10M -type f -print0 | xargs -0 ls -Ssh | sort -z 5.操作文件 查找具有给定权限的文件和目录并更改权限: ##使用755模式查找文件并更改为777 find /home -type f -perm 0755 -print -exec chmod 777 {} \; ##对于目录 find /home -type d -perm 0755 -print -exec chmod 777 {} \; 根据搜索条件查找和删除文件: find /etc -type f -name "*.pdf" -exec rm -f {} \; find ./path/ -name '*.txt' -exec rm '{}' \; 根据文件修改时间查找文件: find /etc/selinux -name "*.conf" -mtime 5 以上查找名称以指定目录中的字符conf结尾并且在前5天内已被修改的文件。 在/data目录中查找和删除文件压缩文件超过7天: find /data/*.gz -mtime +7 -exec rm -rf {} \; 6.查找和删除文件和目录 find /var -name "*.backup" -delete find / -type f -name *.txt -exec rm {} \; find / -type d -name flask -exec rm -rf {} \; ## directory 查找并删除当前工作父目录中的空目录: find . -type d -empty -exec rmdir {} \; 7.按所有权查找文件 查找tech用户拥有的所有文件: find /home -user tech 在/var目录中查找user tech拥有的pdf文件: find /var -user tech -iname "*.pdf" 查找帐户组拥有的所有文件: find /home -group accounts 8.根据文件大小查找文件 当你指定所需的大小时,find命令可以搜索和查找文件,要查找/var目录中的所有70MB文件,请执行: find /var -size 70M 由于你可以将文件与其大小匹配,因此也可以按如下方式删除它们: find /var -size +70M -exec rm -rf {} \;
结论 使用find命令可以轻松找到文件,并使用该实用程序实现更多功能。同时,你也可以参考FD:要比find快上10倍的命令行搜索工具(附安装及使用方法)。
相关主题 |