在Linux/Unix系统中,咱们的应用天天会产生日志文件,天天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不须要长时间保留的,通常保留7天内的文件便可,那么咱们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢?数据库
Linux/Unix提供了find 操做系统命令,使用该命令能够实现咱们的目标。操作系统
$man find 能够查看find命令的使用方法。日志
1. 找出 n 天前的文件file
$find /temp/ -type f -mtime +n -print程序
注:/temp/ 指出寻找/temp/目录下的文件方法
-type f 指出找系统普通文件,不包含目录文件im
-mtime +n 指出找 n*24 小时前的文件数据
-print 将找出的文件打印出来sort
如:找出 7 天前的文件文件
$find /temp/ -type f -mtime +7 -print
找出 3 天前的文件
find /temp/ -type f -mtime +3 -print
2. 找出并删除 7 天前的文件
$find /temp/ -type f -mtime +7 -print -exec rm -f {} \;
注:-exec 指出要执行后面的系统命令
rm -f 删除找出的文件
{} 只有该符号能跟在命令后面
\ 结束符
3. 也能够使用 xargs 代替 -exec
$find /temp/ -type f -mtime +7 -print | xargs rm -f
find命令用途举例:
如:
* 查找/var下最大的前10个文件:
$ find /var -type f -ls | sort -k 7 -r -n | head -10
* 查找/var/log/下大于5GB的文件:
$ find /var/log/ -type f -size +5120M -exec ls -lh {} \;
* 找出今天的全部文件并将它们拷贝到另外一个目录:
$ find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} \;
* 找出全部一周前的临时文件并删除:
$ find /temp/ -mtime +7-type f | xargs /bin/rm -f
* 查找全部的mp3文件,并修改全部的大写字母为小写字母:
$ find /home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/' '{}' \;