美文网首页shell
Shell中exec命令和find

Shell中exec命令和find

作者: 豆豆_50dd | 来源:发表于2018-10-24 10:38 被阅读0次

1、find中的-exec参数

实例:

按时间删除命令:

删除当前目录下30天以前的所有文件:
find . -type f -ctime +30 -exec rm -fr {} \;
 
删除当前目录下30天以前的所有目录:
find . -type d -ctime +30 -exec rm -fr {} \;
 
删除/oracle/123目录下3天以前的文件:
find /oracle/123 -type f -ctime +3 -exec rm -rf {}\ ;
 
删除当前目录下30天以前,名称匹配"*awr*.html"的文件:
find . -type f -name "*awr*.html" -ctime +30 -exec rm -fr {} \;

find命令中的-mtime参数

有关find -mtime这个参数的使用确实是我以前犯过错误。
今天又有人问到我这个问题,我觉得有必要把这个问题在这里记录下来。
 
mtime参数的理解应该如下:

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小时)。

  
-exec command:command为其他指令,-exec后面可再接额外的指令来处理搜索到的结果

图片.png
-exec 参数后面跟的是 command 命令,它的终止是以“;”为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。

相关文章

网友评论

    本文标题:Shell中exec命令和find

    本文链接:https://www.haomeiwen.com/subject/atdttqtx.html