Chinaunix首页 | 论坛 | 博客
  • 博客访问: 363366
  • 博文数量: 109
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 1920
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 11:17
个人简介

只要活着,就要有目标。

文章分类
文章存档

2013年(109)

我的朋友

分类: LINUX

2013-04-12 14:17:13

    如何删除linux系统中指定日期之前的文件?就需要使用到一些命令:

  #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \;
  假如在一个目录中保留最近30天的文件,30天前的文件自动删除
  #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \;
  /tmp  --设置查找的目录;
  -mtime +30 --设置时间为30天前;
  -type f --设置查找的类型为文件;
  -name *.sh[ab] --设置文件名称中包含sha或者shb;
  -exec rm -f --查找完毕后执行删除操作;
  提示:将此命令写入crontab后即可自动完成查找并删除的工作
  另外的方法大同小异
  #find . -mtime +30 -type f | xargs rm -rf
  我的操作是:先ls -ltr 查看时间,没有太久的所以就用 -cmin n查找系统中最后N分钟被改变文件状态的文件。具体命令:$ find /home/oracle/test6 -cmin +20 -type f -name *.xml -exec rm -f { } \;
  另外的方法大同小异
  #find . -mtime +30 -type f | xargs rm -rf
  $find . -type f -cmin +10 -exec rm -rf *.xml {} \;
  find . type f -name "debug*"  -atime +3 -exec rm -f {} \;
  首先cd进入目录:
  find . -name "*~" -exec rm  {} \;
  find . -ctime +n -exec  -exec rm -vi {} \;
  这里的+n是指多少天以前,比如:+7
  find . -ctime +7 -exec  -exec rm -vi {} \;
  如果不想手动确认,把命令中的-vi改成-fv
  请详查find命令。
  使用find时要区分清楚atime,ctime,mtime的区别,一般都使用mtime来查找,因为在ls -al显示出来的就是mtime时间戳,可以使用:  # find  $PAHT -mtime +3  -ok rm {} \;
  在交互模式下删除比较保险。
  一、按照一定日期格式命名文件
  1、按照一定的格式输出日期:
  date +"%y%m%d"
  格式说明:
  % : 印出 %
  %n : 下一行
  %t : 跳格
  %H : 小时(00-23)
  %I : 小时(01-12)
  %k : 小时(0-23)
  %l : 小时(1-12)
  %M : 分钟(00-59)
  %p : 显示本地 AM 或 PM
  %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  %S : 秒(00-60)
  %T : 直接显示时间 (24 小时制)
  %X : 相当于 %H:%M:%S
  %Z : 显示时区
  要删除系统中就的备份文件,就需要使用命令了:
  #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \;
  假如在一个目录中保留最近30天的文件,30天前的文件自动删除
  #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \;
  /tmp  --设置查找的目录;
  -mtime +30 --设置时间为30天前;
  -type f --设置查找的类型为文件;
  -name *.sh[ab] --设置文件名称中包含sha或者shb;
  -exec rm -f --查找完毕后执行删除操作;
  提示:将此命令写入crontab后即可自动完成查找并删除的工作
  另外的方法大同小异
  #find . -mtime +30 -type f | xargs rm -rf
  我的操作是:先ls -ltr 查看时间,没有太久的所以就用 -cmin n查找系统中最后N分钟被改变文件状态的文件。具体命令:$ find /home/oracle/test6 -cmin +20 -type f -name *.xml -exec rm -f { } \;
  另外的方法大同小异
  #find . -mtime +30 -type f | xargs rm -rf
  $find . -type f -cmin +10 -exec rm -rf *.xml {} \;
  find . type f -name "debug*"  -atime +3 -exec rm -f {} \;
  首先cd进入目录:
  find . -name "*~" -exec rm  {} \;
  find . -ctime +n -exec  -exec rm -vi {} \;
  这里的+n是指多少天以前,比如:+7
  find . -ctime +7 -exec  -exec rm -vi {} \;
  如果不想手动确认,把命令中的-vi改成-fv
  请详查find命令。
  使用find时要区分清楚atime,ctime,mtime的区别,一般都使用mtime来查找,因为在ls -al显示出来的就是mtime时间戳,可以使用:  # find  $PAHT -mtime +3  -ok rm {} \;
  在交互模式下删除比较保险。
  一、按照一定日期格式命名文件
  1、按照一定的格式输出日期:
  date +"%y%m%d"
  格式说明:
  % : 印出 %
  %n : 下一行
  %t : 跳格
  %H : 小时(00-23)
  %I : 小时(01-12)
  %k : 小时(0-23)
  %l : 小时(1-12)
  %M : 分钟(00-59)
  %p : 显示本地 AM 或 PM
  %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  %S : 秒(00-60)
  %T : 直接显示时间 (24 小时制)
  %X : 相当于 %H:%M:%S
  %Z : 显示时区
   更多来自:
阅读(1246) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~