如何用shell实现 删除创建时间超过指定时间的文件?

bluesky85 2010-08-03 10:07:16
请问下如何用shell实现删除指定创建时间的文件?
如,我想删除创建时间超过N小时的缓存文件,这个shell该如何写呢?谢谢!
...全文
671 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
s030702614 2010-08-11
  • 打赏
  • 举报
回复
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。
  与文件相关的几个时间:
  1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。
  2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。
  3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。

如果编程实现,可以用time函数加以判断就可以了

定时任务可以用crontab,具体可见:http://blog.csdn.net/s030702614/archive/2010/01/14/5188441.aspx
gdh7201 2010-08-11
  • 打赏
  • 举报
回复
thanks!
masmaster 2010-08-03
  • 打赏
  • 举报
回复
版主对linuxsir很熟悉吗
steptodream 2010-08-03
  • 打赏
  • 举报
回复
然后用find命令把这些文件找出来 删除
请参照http://www.linuxsir.org/main/?q=node/137
注意上面网址里的那些命令里{}之间看上去有空格 其实是没有的 你在使用的时候别加空格
steptodream 2010-08-03
  • 打赏
  • 举报
回复
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。
1.但如果文件创建后就没有修改过,修改时间=创建时间;
2.如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;
3.如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。

你先确认 你是属于哪种情况!
steptodream 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bluesky85 的回复:]

自己顶起,呵呵
我要在此基础上实现定时删除的话,应该如何实现呢?
[/Quote]
把你的删除命令 写到一个脚本里
然后添加到crontab计划任务 比如每天12点执行一次 就行了啊
http://blog.csdn.net/sipsir/archive/2009/03/08/3973713.aspx
bluesky85 2010-08-03
  • 打赏
  • 举报
回复
自己顶起,呵呵
我要在此基础上实现定时删除的话,应该如何实现呢?

18,771

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧