按日期删除大量文件的最佳方法

Luc*_*sar 9 storage linux files

所以,我有一个文件夹,里面有很多文件,它们是第二个生成的,需要保存在我只能在 90 天后删除它们,所以你可能猜到,我会生成大量文件,然后在 90 天后我'能够删除那些超过 90 天的文件。但是,我被困在搜索这些文件的部分,因为我有很多,系统抱怨列表太大,因此我无法删除它们。

什么是最好的解决方案,所以我可以通过这个?文件名处于时间戳模式,所以我可以从它开始,但我想确保所有文件在一段时间后都被删除......

我试过这些方法

rm -rf *
find /path/to/files/ -type f -name '*.ts' -mtime +90 -exec rm {} \; 
Run Code Online (Sandbox Code Playgroud)

我还设法创建了一个按文件名删除的脚本,但使用这种方法我不能保证所有文件都被删除。

use*_*274 9

如果文件在初始创建后没有被修改,如果它们在 90 天内没有被修改,您可以删除它们:

find /path/to/folder -mtime +90 -delete
Run Code Online (Sandbox Code Playgroud)

或者

find /path/to/folder -mtime +90 -exec rm {} +
Run Code Online (Sandbox Code Playgroud)

(对于find不支持该-delete操作的版本)。

为了安全起见,您应该首先使用此命令的非破坏性版本并确保它会删除您想要删除的内容,尤其是如果您打算通过cron或类似方式自动执行此操作,例如

find /path/to/folder -mtime +90 -print
Run Code Online (Sandbox Code Playgroud)