LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2435|回复: 7

在Linux如何删除一个目录中的三天前创建的所有文件呢?

[复制链接]
发表于 2003-4-25 10:15:38 | 显示全部楼层 |阅读模式
在RH Linux如何删除一个目录中的三天前创建的所有文件呢?

我有一个目录,每天要存很多文件,为了不将磁盘存满
同时还能保留最近存的两天的文件,所以想只删除目录
中三天以前创建的所有文件。。。。我应如何作呢?

用如下两个方法都不行啊!
find $dir_you_want -ctime -3 -a -type f -exec /bin/rm {} \;


find $dir_you_want -mtime +2 -type f -exec /bin/rm {} \;
发表于 2003-4-25 11:06:33 | 显示全部楼层
find /your/dirs -ctime 3 -type f -exec /bin/rm {} \;
我试了一下,这条语句应该有效,如果出错请附上出错信息。
 楼主| 发表于 2003-4-25 15:31:21 | 显示全部楼层
目录中有这几个文件作试验
/home/shally/day3
-rwxrwxrwx   1 shally  shally     39 Apr 23 06:05 d1_a.txt
-rwxrwxrwx   1 shally  shally     39 Apr 23 06:05 d1.txt
-rwxrwxrwx   1 root    root       19 Apr 25 01:50 d3_a.txt
-rwxrwxrwx   1 root    root       19 Apr 25 01:50 d3.txt
-rwxrwxrwx   1 root    root        0 Apr 25 06:00 sl.txt

已将文件属性改为 chmod 777 *了

find /home/shally/day3 -ctime -3 -type f -exec /bin/rm {} \;
全删除了
find /home/shally/day3 -ctime 3 -type f -exec /bin/rm {} \;
什么也没有删除
 楼主| 发表于 2003-4-25 15:33:05 | 显示全部楼层
多谢版主:
除了用find命令
还有其它方法吗?
多谢!
发表于 2003-4-25 16:48:13 | 显示全部楼层
已经很方便啦~~
不过用那个 -ctime -3那句不行,用-ctime 3可以(帮助上的解释是没有"-"的)
发表于 2003-4-25 17:07:49 | 显示全部楼层
呵呵,本版的版主JavaLee大哥,俺也是来学习的。若有说得不对之处还请包涵。

我觉得find命令处理这类问题应该是最方便了。
说明一下:
-ctime是判断文件状态的选项,后接参数有三类:-n,+n,n
-ctime -n 所有小于n天以前的文件(如-ctime -3表示所有0天、1天以前、2天以前的文件)
-ctime +n 所有大于n天以前的文件(如-ctime +3表示所有4天以前、5天以前、6天以前...的文件)
-ctime n 所有第n天以前的文件(如-ctime 3表示所有3天前的文件)

以你的目录为例
要删除
-rwxrwxrwx 1 shally shally 39 Apr 23 06:05 d1_a.txt
-rwxrwxrwx 1 shally shally 39 Apr 23 06:05 d1.txt
可执行
find /home/shally/day3 -ctime 2 -type f -exec /bin/rm {} \;
发表于 2003-4-25 17:16:27 | 显示全部楼层
呵~~相互探讨,老兄说话客气啦!我们都是本着学习的态度来这里的,交流的乐趣不就在其中么?!;)
我也是对find理解肤浅,,我用的是
find . -daystart -ctime 3 -exec rm {} \;
查找从今天算3天前的文件,如果返回为真,则执行rm操作.
发表于 2003-4-25 18:02:21 | 显示全部楼层
我又做了一下实验,结果被搞晕了,不过最终还是明白了,关键是明白了下面的概念:

在Linux下文件保存有三个时间标志:
文件建立时间:无法人工改变(除非改名或拷贝)使用要ls -c来查看。
最后修改时间:任何形式的修改或用touch -m(ls默认显示的是它)
最近访问时间:任何形式的访问或用touch -a

所以做实验时用touch -m制作的不同时间的文件,要用find -mtime来操作。

另:javalee使用-daystart选项用起来比较直观,好。-n、n、+n的理解没错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表