目录
-name * 任意多个字符
-name ? 任意一个字符
-name [] 指定范围值
例:
find /root -name "usb*"
#*匹配任意多个字符,查找/root目录下名为usb开头的文件。
find /root -name "usb?"
#?匹配任意一个字符
find /root -name "usb[1-9]"
#[]指定范围,查找usb1,usb2,usb3.....usb9。
例:
find /root -size -10k
#查找/root下小于10k的文件或目录
find /root -size +10M
#查找/root下大于10M的文件或目录
例:
find /root -user user1
#查找root目录下usre1用户的所有文件或目录
例:
find / -perm 644
#查找/下权限为644的所有文件
time 按照天查找 atime ctime mtime
min 按照分钟查找 amin cmin mmina
a 表示访问(查看)过
c 表示属性被修改过 所有者、所属组、其他人
m 表示内容被修改过
例:
find /root -ctime +10
#查找root目录下十天以上修改属性的文件
find /root -mmin -5
#查找root目录下五分钟内修改内容的文件
f 二进制文件(普通文件)
d 目录文件
c 字符文件
l 链接文件
b 块文件
例:
find /root/ -type f
#查找root下,类型为二进制的文件
a 逻辑与运算
o 逻辑或运算
例:
find / -size +10k -a -type f
#查找根目录下大于10k并且是普通类型的文件
find / -size -5k -o -ctime -5
#查找根目录下小于5k的或属性被修改不超过五天的文件
例:
find /root -name "aaa.*" -mtime +7 -exec mv {} /tmp \;
#查找/root下,名为aaa.开头的,文件内容修改时间超过7天的文件,将查找到的文件移动到/tmp下。
#{}表示find的查询结果
#\转义符,不使用命令别名,直接使用命令本身,转义符的作用:给取消特殊含义,也可以让命令给不调用别名,直接起作用。
#;表示语句结束
例:
find /root -inum 1311041 -exec ls -li {} \;
#查找/root下inode号为1311041的文件,并且输出详细信息。
例:
find / -name "aaa*" | xargs rm -rf
#查找根目录下文件名为aaa*的所有文件,将查找到的文件删除。