Linux 文件类型:
- d:文件夹
- f:普通文件
- l:符号链接文件
- b:块文件
- c:字符设备
- p:管道文件
- s:socket套接字
查找指定文件:find [path…] -type d -name [pattern]
- -type:指定文件类型
- -name:指定文件名字
- -regex:使用正则表达式
- -user:指定属主
- -group:指定属组
- -perm:指定权限
```bash
查找指定指定名字的文件夹
find / -type d -name “usr”
查找当前文件夹中以.avi结尾的普通文件
find . -type f -name “*.avi”
使用正则进行匹配
find . -type f -regex “*”
根据属主和属组进行匹配
find . -type f -user root -group root
根据权限来搜索
find . -perm 664
对 find 出来的每一个对象执行特定的命令:-exec
```bash
find . -perm 664 -exec ls -lh {} \;
- -exec:告知find对其搜索到的每一个对象执行特定的命令
- ls -lh:待执行的特定的命令
- {}:占位符,指代find搜索到的每一个对象
- \;:在 -exec 用法中,分号表示特定的shell命令结束,为了防止转义,必须在分号前面加上反斜杠
按时间来搜索文件:
- -mmin +/-n:
- +n:表示在n分钟以前文件被修改过
- -n:表示在n分钟以内文件被修改过
- -cmin +/-n:
- +n:表示在n分钟以前文件状态有过改变
- -n:表示在n分钟以内文件状态有过改变
- -amin+/-n:
- +n:表示在n分钟以前文件被访问过
- -n:表示文件在n分钟以内文件被访问过
同类选项:
- -mtime:等效于-mmin,单位为天
- -ctime:等效于-cmin,单位为天
- -atime:等效于-amin,单位为天
找到大文件:find . -type f -size +40M
- -size +40M:搜索大于40M的文件
- -size -40M:搜索小于40M的文件
- -size 40M:搜索等于40M的文件
-size支持的单位:
- b:512byte的数据块
- c:bytes
- w:words,两字节的字
- k:KB
- M:MB
- G:GB
指定搜索深度:find . -maxdepth 2 -name xxfile
多条件搜索:find . -type f -a -name “*.mov”
- 在find中,每一个搜索条件都是一个表达式
- (expr):提升表达式优先级
- !expr:对表达式取反
- expr1 expr2:等效于 expr1 -a expr2,对两个表达式进行 and 关系处理
- expr1 -o expr2:对两个表达式求或关系,如果 expr1 为真,则不会再评估 expr2
- expr1 ,expr2:列表表达式,两个表达式都会被评估,但结果总会是 expr2 的结果
# 注意添加转义符,避免被shell处理而无法传递给find命令
find . \( -type f -a -name "*.mov" \) -o \( -type f -a -user root \)