有关find -mtime这个参数的使用确实是我以前犯过错误。今天又有人问到我这个问题,我觉得有必要把这个问题在这里记录下来。
mtime参数的理解应该如下:
-mtime n 按照文件的更改时间来找文件,n为整数。
n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天以内,+n表示文件更改时间距离在n天以前。
例如:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
为什么-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢?
因为n值只能是整数,即比1大的最近的整数是2,所有-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。
-------------------
查找以数字开头的文件
find /home -name "[0-9]*" -print #
如果想从系统中找到某个软件包相关的所有文件,然后全部删除:
find / | grep |xargs rm -rf
find / | grep #历遍系统中的所有文件,并且通过管道传递给grep,以将包含"name"的所有文件及文件夹列出来
xargs rm -rf #将grep 的结果作为参数传递给"rm -rf",也就是不管是文件还是目录,一并删除
在真正地执行rm -rf 之前,最好单独执行"find / | grep 查看结果,从中辨别出是否有不相关的文件,否则毁之晚矣。
阅读(1269) | 评论(0) | 转发(0) |