Linux命令删除指定日期以前的文件

那天,我在公司服务器上看到同事用find命令清理磁盘,他轻点鼠标,那些修改时间超过七天的文件就消失了。
我好奇地问:“这怎么操作的?”他笑着回答:“用find命令,加上一些参数就搞定了。
”我记下了他说的代码:find/data1 /-typef-mtime+7 -execrm{}\;
后来,我回家研究了一下,发现这个命令真的很强大。
比如,我可以用find命令找出最近2 4 小时内修改过的文件:find.–mtimen:2 4 再比如,我想找出三天前修改过的文件,就可以用find.–mtime+3
等等,还有个事,我突然想到,这些命令不仅可以用来查找文件,还可以用来删除文件。
比如,我想删除修改时间超过五天的文件,就可以这样写:find.–mtime–5 -execrm{}\;
这让我想起了以前在论坛看到一个网友说:“工具用得好,效率翻几倍。
”现在想想,还真是这么回事。
不过,用这些命令的时候也要小心,别不小心删错了文件。

Linux文件操作(包括批量修改文件权限、删除指定日期之前的文件列表、删除指定日期范围内的文件列表)

2 02 3 年,我那个朋友在公司遇到了个问题,Linux系统里需要批量修改文件权限。
他用的是chmod命令,比如给某个目录下的所有文件增加执行权限,写的是chmod+x目录名/。
这个方法挺方便的。

然后,他想删除2 02 4 年5 月1 4 日及之前修改的文件,就用了find命令结合newermt选项。
命令是find/path/to/directorytypef!newermt"2 02 4 05 1 5 ",这样就能找到所有在那之前修改的文件。
最后,他用rm命令删除了这些文件。

我那个朋友又遇到了一个需求,要删除指定日期范围内的文件。
他就用了find命令的newermt和!newermt选项。
比如要删除2 02 4 年5 月1 日至2 02 4 年5 月1 4 日之间修改的文件,命令是find/path/to/directorytypefnewermt"2 02 4 05 01 "&!newermt"2 02 4 05 1 5 ",这样就能找到符合条件的文件。
然后用rm命令删除了这些文件。

不过,我那个朋友也提醒说,执行删除操作前,最好先使用find命令查看一下将要删除的文件列表,避免误删重要文件。
而且,使用rm命令删除文件时要小心,因为一旦删除,文件就没办法恢复了。
算了,你看着办吧。

linux如何删除某个时间之前的过期文件,在一个文件夹内部的

记得有一次,我整理服务器日志,硬盘快满了。
那晚加班到十一点,盯着屏幕上密密麻麻的.log文件,头疼得不行。
突然想到,得找个法子清理掉那些没用的旧日志。
当时系统上装着Linux,手头有台老式台式机,屏幕是那种绿油油的CRT显示器,闪得让人眼晕。

查了半天,发现find命令真是个好东西。
在虚拟终端里敲命令,感觉像在解谜。
输入find /var/log -name ".log" -mtime +3 -exec rm {} \;,回车后屏幕上开始逐个列出文件名,像是在念悼词。
等命令执行完,再跑一遍df -h,看着硬盘空间多出来几个G,心里那块大石头总算落了地。

等等,还有个事。
执行这个命令的时候,记得先用find /var/log -name ".log" -mtime +3 -exec ls -l {} \;先预览一下,免得到时候真删了重要的文件。
那天晚上,我就因为急着清理,忘了预览,后来发现删错了一个备份日志,还得半夜再跑一趟服务器去恢复。
真是折腾。

时间参数那些,确实得记牢。
-mtime是修改时间,-ctime是状态变更时间,搞混了可就麻烦了。
那天我删文件用的是+mtime,因为日志主要是内容更新。
如果文件是被人重命名过,那-cmtime可能更合适。
不过对于日志这种经常追加内容的文件,-mtime通常够用了。

那个绿屏显示器最后坏掉了,换成了液晶的。
但find命令的记忆还在。
现在用Windows Subsystem for Linux,操作起来跟以前一样顺手。
有时候想想,当年为了学这个命令,翻了多少手册,试了多少次才成功,真是...等等,我突然想到,现在云服务器这么方便,硬盘也大得离谱,谁还会为几百M的日志空间发愁呢?