find命令之时间参数、目录层次

来源:互联网 发布:食品淘宝怎么上传 编辑:程序博客网 时间:2024/05/16 18:22

 都是曾经犯过的错误,整理一下作为开篇。

1. 时间参数 mtime atime ctime mmin cmin amin etc..

指定这几个项后面的数值,可以为三种情况:a) 正号 b) 负号 c)不带符号。

负值是less than,正值是greater than;但是带+于不带,却有些微妙的差异。

+,会把不足一个时间单位的时间取下整,再与条件值比较。

例如, 一个文件mtime为1day12hour ago,则符合 -mtime 1,但不符合 -mtime +1。

1day12hour ,即1.5天,取上整为1day,因此不符合-mtime +1。

 

固,下面的这条语句,前者保留最近2天的日志,后者则是一天之内的。

 

find /path -type f -name "*.log" -mtime +1 -exec rm {} /;
find /path -type f -name "*.log" -mtime 1 -exec rm {} /;

 

 

2. 路径限制 maxdepth mindepth

一日领命清理文件缓存,清理掉1周天前的缓存目录。(该缓存使用了3层目录散列结构,缓存目录下的第三层目录才是要清理的目录)

随手写了这么一句:

find /path -type d -mtime 7 -exec rm -rf {} /;

结果,as u see,整个path目录都被rm了……于是被痛批。

合理的应为

 

find /path -maxdepth 3 -mindepth 3 -type d -mtime 7 -exec rm -rf {} /;
原创粉丝点击