linux find 之 文件、时间、权限、深度、删除
/*
* 文件
*/
指定文件名:
find . -name ac.txt
指定文件名,不区分大小写:
find . -iname ac.txt
指定.txt所有文件:
find . -name "*.txt"
find . -name "a*.*xt"
指定不等于此文件名的:
find . -not -name "ac.txt"
find . \! -name "ac.txt"
指定多个文件名匹配
find . -name "*.txt" -o -name "*.c"
find . -regex ".*\(\.txt\|\.c\)$"
find . -iregex ".*\(\.txt\|\.c\)$"
find . -regex ".*\(\.txt\|\.c\)$"
find . -iregex ".*\(\.txt\|\.c\)$"
指定文件类型查找:
f : file
d : directory
l : symbolic link
c : char
b : block
p : fifo
s : socket
find . -type f -name "*.c"
find . -type c
find . -type f -size 1M # 指定大小1M
find . -type f -size -1M # 小于1M
find . -type f -size +1M # 大于1M
find . -type f -size +1M -size 2M # 1到2M之间
/*
* 时间
*/
最近一次访问时间
-atime : minute
-amin : day
最后一次修改时间
-mtime : day
-mmin : minute
权限等最后一次修改时间
-ctime : day
-cmin : minute
find . -type f -atime 8 # 前[8]这一天
find . -type f -atime -8 # 前[0~8]天
find . -type f -atime +8 # 超过[8]天前
find . -type f -amin 10 # 刚好10分钟
find . -type f -amin -10 # 10分钟内
find . -type f -amin +10 # 超过10分钟
find . -type f -newer ac.c # 比ac.c修改时间更长的所有文件
find . -mtime +5 -daystart # 以今天开始计算时间查找修改时间大于等于5天的文件
/*
* 权限
*/
find . -perm 777 # 精确权限查找
find . -perm /777 # 指定所有者(用户、组、其他人)至少有一个拥有此权限即可
find . -perm -644 # 大于等于此权限
find . ! -perm 644 # 除644以外的权限
find . -perm /u=r # 只读文件
find . -perm /a=x # 执行文件
find . -user a.c # 所属用户
find . -group a.c # 所属组
/*
* 深度
*/
find . -maxdepth 3 -type f # 最大为3
find . -mindepth 2 -type f # 距离当前目录至少2个子目录的所有文件
/*
* 删除
*/
find . -type f -name "*.tmp" -delete