删除早于linux中特定日期的文件

时间:2015-10-12 22:08:33

标签: linux find delete-file

我使用以下命令删除超过一年的文件。

  find /path/* -mtime +365 -exec rm -rf {} \;

但是,现在我要删除修改时间早于2014年1月1日的所有文件

我如何在linux中完成。

4 个答案:

答案 0 :(得分:22)

这对我有用:

find /path ! -newermt "YYYY-MM-DD HH:MM:SS" | xargs rm -rf

答案 1 :(得分:20)

您可以将时间戳作为文件触摸,并将其用作参考点:

e.g。 2014年1月1日:

touch -t 201401010000 /tmp/2014-Jan-01-0000

find /path -type f ! -newer /tmp/2014-Jan-01-0000 | xargs rm -rf 

这是有效的,因为find有一个我们正在使用的-newer开关。

来自man find

-newer file
       File  was  modified  more  recently than file.  If file is a symbolic
       link and the -H option or the -L option is in effect, the modification time of the 
       file it points to is always used.

答案 2 :(得分:1)

find ~ -type f ! -atime 4|xargs ls -lrt

这将列出 4天以上访问的文件,从主目录中搜索。

答案 3 :(得分:1)

接受的答案污染了文件系统,并发现其本身提供了删除。因此我们不必将结果通过管道传递给xargs,然后发出rm。这个答案更有效

find /path -type f -not -newermt "YYYY:MM:DD HH:MI:SS" -delete