linux下常用命令find

find 常用选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-name   #按名字查找
-user #按文件属主(用户)查找
-group # 按文件所属的组查找
-nouser #查找无有效属主的文件
-nogroup #查找无有效所属组的文件
-size #按文件大小查找

depth #首先查找当前目录中的文件
-maxdepth n #查找几级目录

-amin n #查找最后N分钟访问的文件
-cmin n #查找最后n分钟被改变文件状态的文件
-mmin n #查找最后n分钟被改变文件内容的文件

#find查找到内容后执行命令的格式
find . -perm 644 -exec COMMAND {} \; ##{}表示查找到的内容
find . -perm 644 | xargs rm -rf #

按文件权限查找

1
2
3
4
5
6
7
8
9
-perm [+-]mode

#mode解释
mode 正好符合mode
+mode 部分符合mode
-mode 完全符合mode

#举例:查找当前目录文件权限为644的文件
find . -perm 644

按文件的更改时间查找

1
2
3
4
5
-mtime(表示文件内容修改时间)
find . -mtime -n 查找n天以内更改的文件
find . -mtime +n 查找n天以前更改的文件
-atime(同上,表示文件访问时间)
-ctime(同上,表示文件状态改变的时间)

查找比file1新但比file2旧的文件

1
-newer file1 ! -newer file2

按文件类型查找

1
2
3
4
5
6
7
8
-type {
b 块设备文件
d 查找目录
c 查找字符设备文件
p 查找管道文件
l 查找链接文件
f 查找普通文件
}

1
2
3
4
5
6
7
8
9
10
11
find . -type f -exec cp {}{,.bak} \; ##将当期目录下的普通文件备份
find . -type -f |xarg cp |xargs rm -rf ##删除查找到的文件
find . -size 100m -type f #查找等于100M的文件
find . -size -100 -type f #查找小于100M的文件
find . -size +100 -type f #查找大于100M的文件

#查找多个后缀名文件
find . \( -name "*.JPG" -o -name "*.jpg" \)

#查找删除带空格文件名
find . \( -name "*.JPG" -o -name "*.jpg" \) -print0|xargs -0 rm