有时间可以直接看一下man find文档
-
找到更改时间为N天前的文件,并执行某些命令
find /home/files/ -type f -mtime +7 -execdir file {} ;
-type: 表示要找什么东西,常用的f
普通文件、d
表示目录、l
表示快捷链接
-mtime: 表示文件最近一次被修改的时间是什么时候,可以写正整数,也可以在数字前面加入+
或-
。类似的还有atime、ctime。要注意的是时间是以当前时间再往前推多少天这么计算的。
只写正整数表示文件的最近修改时间是在之前第几天,0表示24h内;
+
表示最近修改时间在第几天之前的都算;
-
表示最近修改时间在第几天之内的都算,
然后可以组合起来如-mtime +7 -mtime -10
以此来确定一个范围
-execdir: 没找到一次就执行命令,和exec是一样的,不过官方推荐用execdir来代替exec避免一些安全问题,具体是什么问题没说明。file {} \;
为execdir要执行的命令,其中{}
表示每次找到的文件,\;
表示execdir执行命令的结尾,使用转义字符\
是为了避免被shell误解析成分行 -
-size
使用方式和第1点中的mtime
差不多,可以支持的格式:整数,+,-。
单位可以如下:
b
块的大小;
c
字节大小;
w
两个字节的大小,也就是c/2;
k
也就是KB;
M
一样,MB;
G
一样,GB;