Linux/Unix 怎样找出并删除某一时间点的文件

Linux/Unix 怎样找出并删除某一时间点的文件

(2012-08-02 17:13:45)
  

   在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢?

   Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标。

 

    $man find可以查看find命令的使用方法。

 

   1. 找出 n 天前的文件

    $find/temp/ -type f -mtime +n -print

    注:/temp/ 指出寻找/temp/目录下的文件

       -type f 指出找系统普通文件,不包含目录文件

       -mtime +n 指出找 n*24 小时前的文件

       -print 将找出的文件打印出来

 

    如:找出 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]/''{}' \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值