find 文件查找

最后更新于:2022-04-02 03:48:25

[TOC] ## 实例 ``` -name 文件名 // 匹配文件 -name "*.tar.gz" -iname 文件名 // 会忽略大小写 -maxdepth 深度(整型) // 搜索的深度 -exec 命令 {} \; //对搜索出来的内容执行命令 -ok 命令 {} \; //需要确认后执行命令 -perm 664 // 按权限查找 -user im_user // 按用户查找 -readable // 可读 -writeable //可写 -executable //可执行 -type //d=目录,f=文件,l=符号链接,s=socket -amin [-|+] n //在过去 n 分钟内被读取过,默认是 "-",表示n分钟后,"+"表示 n 分钟前 -atime [-|+] n //在过去n天内被读取过的文件 -cmin [-|+] n //在过去 n 分钟内被修改过 -ctime [-|+] n //在过去n天内被修改过的文件 -empty // 空文件 -szie [-|+] n[c|k|M|G] // -=小于,+=大于 ,c=字节,k=kb,M=MB,G=GB -print // 标出输出,后跟一个换行符 -proint0 //标出输出,换行符替换为 null 操作符 ( EXPR ) ! EXPR -not EXPR EXPR1 -and EXPR2 EXPR1 -or EXPR2 ``` ## -name ``` find ./ -name *.tar // find ./ -name *.tar.gz //会报错 需要加引号 find ./ -name "*.tar.gz" ``` ## 逻辑符号使用 ### 查找 txt 或 pdf ``` find . \( -name "*.txt" -or -name "*.pdf" \) -print //正则方式查找 find . -regex ".*\(\.txt|\.pdf\)$" ``` ### 查找所有非txt文本 `find . ! -name "*.txt" -print` ## 按时间搜索 最近第7天被访问过的所有文件: `find . -atime 7 -type f -print ` 最近7天内被访问过的所有文件: `find . -atime -7 -type f -print ` 查询7天前被访问过的所有文件: `find . -atime +7 type f -print` ## 按大小搜索 搜索大于 2k的文件 ``` find . -type f -size +2k ``` 搜索小于 500k 大于 50k的文件 ``` find /root -size -500k -size +50k ``` ## 按权限查找 找具有可执行权限的所有文件 `find . -type f -perm 644 -print` ## 按用户查找 找用户weber所拥有的文件 `find . -type f -user weber -print` ## -exec|-ok 搜索并执行命名 搜索 大于 2M ``` find ./ -size +2M -exec ls -l {} \; ``` 执行前询问 ``` find ./ -size +2M -ok ls -l {} \; ```
';