find

type 指定类型

b       block special
c       character special
d       directory
f       regular file
l       symbolic link
p       FIFO
s       socket

列出所有文件

find ./ -type f

列出所有目录

find ./ -type d

name / iname 按名称查找

iname 不区分大小写

明确的文件名

find -name "foo.txt"

查找所有的 log 类型的文件

find . -name "*.log"

查找所有的 非log 类型的文件

find . \! -name "*.log"

exec 对查找结果执行命令

-exec [yourCmd] {} \; 为固定模式串,{}find 出的结果占位符。

删除所有的 .log 文件

find . -type f -name "*.log" -exec rm -f {} \;

删除 90 天前创建的目录

find . -type d -ctime +90 -exec rm -rf {} \;

empty 空的文件或目录

find . -type f -empty
find . -type d -emtpy

创建/修改/访问时间范围筛选

ctime 创建日期(天)
mtime 修改日期(天)
atime 访问日期(天)
cmin  创建时间(分钟)
mmin  创建时间(分钟)
amin  创建时间(分钟)

下面只拿 ctime 举例,其他类比带入一致

创建时间刚好为1天的文件(很少这样用,通常是时间范围筛选

find . -ctime 1

创建时间大于1天的文件

find . -ctime +1

创建时间小于1天的文件

find . -ctime -1

创建时间大于1天小于2天的文件

find . -ctime +1 -ctime -2

删除90天前的目录

find . -type d -ctime +90 -exec rm -rf {} \;

size 文件大小

大于10M的文件

find . -size +10M 

10M ~ 100M 的文件

find . -size +10M -size -100M

big_cat
1.7k 声望130 粉丝

规范至上