Bash:根据文件日期戳删除

时间:2010-09-09 13:10:58

标签: linux bash

我有一个包含大量文件的文件夹。我需要删除7月1日之前创建的所有文件。我如何在bash脚本中执行此操作?

2 个答案:

答案 0 :(得分:22)

我认为以下内容应该符合您的要求:

touch -t 201007010000 dummyfile
find /path/to/files -type f ! -newer dummyfile -delete

第一行创建一个在2010年7月1日最后修改的文件。第二行查找/ path / to / file中的所有文件,其日期不比虚拟文件新,然后删除它们。

如果要仔细检查它是否正常工作,请删除-delete参数,它应该只列出要删除的文件。

答案 1 :(得分:8)

这应该有效:

find /file/path ! -newermt "Jul 01"

要查找要删除的文件,删除它们的命令将为:

find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm