任何想法如何删除我的旧文件到哪个月到哪个月,哪个是使用linux命令?
示例我想要做的是:
rm oldfile.txt april until may 2012
知道如何解决我的问题吗?
感谢
答案 0 :(得分:0)
awk可以帮助您删除一个月(或一组几个月)的文件
ls -l | awk '{if ($6=="Apr" || $6=="Mai") print $9}' | xargs rm
答案 1 :(得分:0)
您可以从使用stat
轻松识别的日期开始显示文件及其上次修改时间:
$ stat -c '%n %z' foo bar
2012-02-25 23:39:31.000000000 +0000 foo
2012-02-25 23:43:35.000000000 +0000 bar
将此与grep
相结合,您可以将列表过滤到您想要的月份:
$ stat -c '%n %z' foo bar | grep -E '^2012-0[45]-.. '
哪个应该为您提供在2012年4月到5月期间修改过的文件。然后您将只想使用cut
提取文件名(第四个字段以进行删除):
$ stat -c '%n %z' foo bar | grep -E '^2012-0[45]-.. ' | cut -f 4- -d' '
一旦你对输出感到满意,那么就这样删除它们(这是不归路的,所以把你的安全带放在上面:):
$ !! | while read filename; do rm -f "$filename"; done
注意:!!
符号重复最后一个命令,因此您不必再次键入它。在这种情况下,它将重复stat命令,最后切割结束。
答案 2 :(得分:0)
使用find
:
touch -d '2012-04-01 00:00:00' STARTING
touch -d '2012-04-30 23:59:59' STOPPING
find . -type f -newer STARTING -not -newer STOPPING -exec rm {} \;
编辑:请注意,这将在4月到5月之间删除文件。因此,2012年4月1日至2012年4月30日期间的文件将被删除。此外,最好在实际删除之前查看要删除的文件列表。为此,请将rm
更改为ls -la
。