Bash:根据文件日期戳删除

Dav*_*ill 11 linux bash

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

bra*_*amp 22

我认为以下应该做你想要的:

touch -t 201007010000 dummyfile
find /path/to/files -type f ! -newer dummyfile -delete
Run Code Online (Sandbox Code Playgroud)

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

如果你想仔细检查它是否正常工作,然后删除-delete参数,它应该只列出将被删除的文件.


Eri*_*lin 8

这应该工作:

find /file/path ! -newermt "Jul 01"
Run Code Online (Sandbox Code Playgroud)

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

find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)