删除大于30天的文件
find /opt/backup -type f -mtime +30 -delete
或者:
find /opt/backup -type f -mtime +30 -exec rm -rf {} \;
删除大小为0的文件
find /opt/backup -size 0 -exec rm -i {} \;
-type f
: 表示只找出文件,排除查找目录
-type d
: 表示只找出目录
-mtime
: 表示修改时间(modify time 简写为mtime)
\;
: 表示对分号进行转义,-exec 命令后面可以跟很多的参数,那么就需要分号( 来表面参数的结束。比如find . -name "*.js" -exec ls -l {} \; -name "special.*" -exec cat {} \;
就需要分号来结束第一个exec的命令参数。
关于Linux底下三种时间的简单介绍:
1. atime:(access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。(执行一些可执行文件或脚本)
2. mtime: (modify time)显示的是文件内容被修改的最后时间,比如用vi编辑时就会被改变。(也就是Block的内容)
3. ctime: (change time)显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变(即inode内容发生改变和Block内容发生改变时)