当前位置: 技术问答>linux和unix
如何用shell实现 删除创建时间超过指定时间的文件?
来源: 互联网 发布时间:2016-09-18
本文导语: 请问下如何用shell实现删除指定创建时间的文件? 如,我想删除创建时间超过N小时的缓存文件,这个shell该如何写呢?谢谢! | 在Linux中,没有文件创建时间的概念。只有文件的访问时间、...
请问下如何用shell实现删除指定创建时间的文件?
如,我想删除创建时间超过N小时的缓存文件,这个shell该如何写呢?谢谢!
如,我想删除创建时间超过N小时的缓存文件,这个shell该如何写呢?谢谢!
|
在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
与文件相关的几个时间:
1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。
2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。
如果编程实现,可以用time函数加以判断就可以了
定时任务可以用crontab,具体可见:http://blog.csdn.net/s030702614/archive/2010/01/14/5188441.aspx
|
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。
1.但如果文件创建后就没有修改过,修改时间=创建时间;
2.如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;
3.如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。
你先确认 你是属于哪种情况!
1.但如果文件创建后就没有修改过,修改时间=创建时间;
2.如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;
3.如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。
你先确认 你是属于哪种情况!
|
然后用find命令把这些文件找出来 删除
请参照http://www.linuxsir.org/main/?q=node/137
注意上面网址里的那些命令里{}之间看上去有空格 其实是没有的 你在使用的时候别加空格
请参照http://www.linuxsir.org/main/?q=node/137
注意上面网址里的那些命令里{}之间看上去有空格 其实是没有的 你在使用的时候别加空格
|
把你的删除命令 写到一个脚本里
然后添加到crontab计划任务 比如每天12点执行一次 就行了啊
http://blog.csdn.net/sipsir/archive/2009/03/08/3973713.aspx