任何想法如何删除我的旧文件之间的月份,直到哪个月,这是使用Linux命令?如何删除旧月之间的月份?
例如我想要做的是:
rm oldfile.txt april until may 2012
不知道如何解决我的问题?
感谢
任何想法如何删除我的旧文件之间的月份,直到哪个月,这是使用Linux命令?如何删除旧月之间的月份?
例如我想要做的是:
rm oldfile.txt april until may 2012
不知道如何解决我的问题?
感谢
三个步骤,使用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 {} \;
编辑:请注意,这将删除四月和五月之间的文件。因此2012年4月1日至2012年4月30日之间的文件将被删除。另外,在实际删除文件之前查看要删除的文件列表是个不错的主意。为此,请将rm
更改为ls -la
。
谢谢,它工作得很好 – Oscar 2012-07-30 04:01:54
AWK可以帮助您在日期显示文件,也是他们的最后修改时间删除单月的文件(或一组个月)
ls -l | awk '{if ($6=="Apr" || $6=="Mai") print $9}' | xargs rm
可以启动你可以很容易地认识到使用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年则可之间的文件你要只提取文件名(第四场起)使用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命令。
“linux编码”如在bash中? – 2012-07-30 01:35:24
我用putty来访问服务器,实际上是linux命令 – Oscar 2012-07-30 01:52:24
提示:'man find'。 – jweyrich 2012-07-30 01:58:43