设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
在Linux如何删除一个目录中的三天前创建的所有文件呢? ...
返回列表
查看:
2475
|
回复:
7
在Linux如何删除一个目录中的三天前创建的所有文件呢?
[复制链接]
shally5
shally5
当前离线
积分
105
IP卡
狗仔卡
发表于 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 {} \;
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
LYOO
LYOO
当前离线
积分
782
IP卡
狗仔卡
发表于 2003-4-25 11:06:33
|
显示全部楼层
find /your/dirs -ctime 3 -type f -exec /bin/rm {} \;
我试了一下,这条语句应该有效,如果出错请附上出错信息。
回复
支持
反对
使用道具
举报
显身卡
shally5
shally5
当前离线
积分
105
IP卡
狗仔卡
楼主
|
发表于 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 {} \;
什么也没有删除
回复
支持
反对
使用道具
举报
显身卡
shally5
shally5
当前离线
积分
105
IP卡
狗仔卡
楼主
|
发表于 2003-4-25 15:33:05
|
显示全部楼层
多谢版主:
除了用find命令
还有其它方法吗?
多谢!
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-4-25 16:48:13
|
显示全部楼层
已经很方便啦~~
不过用那个 -ctime -3那句不行,用-ctime 3可以(帮助上的解释是没有"-"的)
回复
支持
反对
使用道具
举报
显身卡
LYOO
LYOO
当前离线
积分
782
IP卡
狗仔卡
发表于 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 {} \;
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-4-25 17:16:27
|
显示全部楼层
呵~~相互探讨,老兄说话客气啦!我们都是本着学习的态度来这里的,交流的乐趣不就在其中么?!;)
我也是对find理解肤浅,,我用的是
find . -daystart -ctime 3 -exec rm {} \;
查找从今天算3天前的文件,如果返回为真,则执行rm操作.
回复
支持
反对
使用道具
举报
显身卡
LYOO
LYOO
当前离线
积分
782
IP卡
狗仔卡
发表于 2003-4-25 18:02:21
|
显示全部楼层
我又做了一下实验,结果被搞晕了,不过最终还是明白了,关键是明白了下面的概念:
在Linux下文件保存有三个时间标志:
文件建立时间:无法人工改变(除非改名或拷贝)使用要ls -c来查看。
最后修改时间:任何形式的修改或用touch -m(ls默认显示的是它)
最近访问时间:任何形式的访问或用touch -a
所以做实验时用touch -m制作的不同时间的文件,要用find -mtime来操作。
另:javalee使用-daystart选项用起来比较直观,好。-n、n、+n的理解没错。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
计算机认证考试学习与经验交流
C\C++
服务器架设、应用、维护
硬件设备 Linux 驱动
Mandriva Linux
RelaxBSD 讨论区
红旗 REDFLAG Linux
SuSE Linux
Gentoo Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表