如何删除特定日期之间修改的文件?

如何删除特定日期之间修改的文件?

如主题所述:我想删除目录中在特定日期范围内修改过的文件。我该怎么做?

答案1

命令GNU find才是王道。例如,要删除 8 月 1 日至 5 日之间当前目录中的所有文件,可以使用以下命令

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

最好-delete首先执行不带操作的命令,以查看感兴趣的文件的列表(一个好的替代方案可能是-ls生成类似 ls 的列表)。

删除-maxdepth 1规范也将遍历所有子目录。

您还可以指定小时数,例如

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

请注意不要删除保护日期和时间之间的空格的单引号。

该字符!是否定的,应读作:比该日期更新,但不是比其他日期更新。

相关内容