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 {} \;
```
';