免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 14440 | 回复: 30
打印 上一主题 下一主题

定时删除文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-27 10:25 |只看该作者 |正序浏览
我想定时删除文件,可是这个文件名是根据日期变化的,比如我想删除七天前的文件,怎么实现?

论坛徽章:
0
31 [报告]
发表于 2005-08-04 09:50 |只看该作者

定时删除文件

问题已解决,谢谢各位的关注。

论坛徽章:
0
30 [报告]
发表于 2005-08-01 11:59 |只看该作者

定时删除文件

for ((i=-7;i<3;i++))

bash里for格式能这样用吗?
好象不行吧。应该for i in -7 -6

论坛徽章:
0
29 [报告]
发表于 2005-07-29 21:49 |只看该作者

定时删除文件

你不会是直接就 path/*了?
脚本不要放到同一目录。

论坛徽章:
0
28 [报告]
发表于 2005-07-29 21:44 |只看该作者

定时删除文件

原帖由 "yu330" 发表:


luodarou 写到:
第1行,完全正确
第2行,正确,但目的不明
第3行,语法不正确,if 需要 then,需要fi 来结束,你要比较的那两个东西,逻辑上永远为真,但表达式不正确。
第4行,不需要
第5行,不需要
第6行,正确,但..也不需要


就是说在 /root/tools/HZ/HZ-33/screenshot目录下,我有2005-7-5、2005-7-6、2005-7-20、2005-7- 21、2005-7-28、2005-7-29等目录,我取7天前的日期文件跟这个目录下的文件一一对比,如果是小于等于就保留,否则就删除。
没写过SHELL,还请大虾帮忙。

  1. #!/bin/sh
  2. mkdir -p /tmp/7day
  3. for j in path/*
  4. do
  5.         for ((i=-7;i<3;i++))
  6.         do
  7.                 if [ `basename $j` = `date +%Y-%m-%d -d "$i day"` ]
  8.                 then
  9.                         mv $j /tmp/7day
  10.                 fi
  11.         done
  12. done
  13. rm -f path/*
  14. mv /tmp/7day/* path/ && rm -rf /tmp/7day
复制代码

你到底要干什么?
http://www.linuxsir.org/bbs/showthread.php?p=1222483#post1222483

论坛徽章:
0
27 [报告]
发表于 2005-07-28 12:56 |只看该作者

定时删除文件

原帖由 "luodarou" 发表:
第1行,完全正确
第2行,正确,但目的不明
第3行,语法不正确,if 需要 then,需要fi 来结束,你要比较的那两个东西,逻辑上永远为真,但表达式不正确。
第4行,不需要
第5行,不需要
第6行,正确,但..也不需要


就是说在 /root/tools/HZ/HZ-33/screenshot目录下,我有2005-7-5、2005-7-6、2005-7-20、2005-7-21、2005-7-28、2005-7-29等目录,我取7天前的日期文件跟这个目录下的文件一一对比,如果是小于等于就保留,否则就删除。
没写过SHELL,还请大虾帮忙。

论坛徽章:
0
26 [报告]
发表于 2005-07-28 11:39 |只看该作者

定时删除文件

第1行,完全正确
第2行,正确,但目的不明
第3行,语法不正确,if 需要 then,需要fi 来结束,你要比较的那两个东西,逻辑上永远为真,但表达式不正确。
第4行,不需要
第5行,不需要
第6行,正确,但..也不需要

论坛徽章:
0
25 [报告]
发表于 2005-07-28 10:27 |只看该作者

定时删除文件

#!/bin/bash
ls /root/tools/HZ/HZ-33/screenshot
if date '+%Y-%m-%d' -d '-7 day'<=date '+%Y-%m-%d'
do
else
rm -rf 200*

这个代码有哪里不对?

论坛徽章:
0
24 [报告]
发表于 2005-07-28 09:55 |只看该作者

定时删除文件

原帖由 "chenzq1604" 发表:
可以使用shell写一个删除文件的脚本,在shell区有很多这样的例子,给出一点思路:
1、使用date命令取7天之前的日期,再取文件名中的日期字符相比较,小于就删除
2、使用crontab 做个计划吧


是正解,可是不会作比较。都怪在学校里的时候,不好好学语言。

论坛徽章:
0
23 [报告]
发表于 2005-07-28 09:54 |只看该作者

定时删除文件

原帖由 "yu330" 发表:


date  '+%Y-%m-%d' -d '-7 day'
输出的是日期,不能删除。那怎样把日期转换为文件呢?


不对,不对,这句代码输出的是7天前的日期,没必要删除。只要把7天前的日期文件跟其他文件相比较,如果是小于就可以删除。代码怎么写呢?
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP