如何删除今天没有创建的所有文件

NJM*_*JMR 1 linux find date rm files

我想要delete all今天没有创建的文件夹中的文件。我知道如何使用今天创建的文件列表

find . -type f -mtime -1
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何获取今天未创建的所有文件的列表。基本上我必须找到文件夹中是否有除今天以外的旧时间戳的文件。如果存在,我只需要删除旧文件。

Sté*_*las 6

find . -type f -mtime +0 -exec rm -f {} +
Run Code Online (Sandbox Code Playgroud)

或者

find . -type f ! -mtime -1 -exec rm -f {} +
Run Code Online (Sandbox Code Playgroud)

将删除内容最后修改时间超过 24 小时的常规文件(-mtime +0意思是:其年龄(四舍五入为整数,天数为 24 小时,或 86400 Unix 纪元秒持续时间)严格大于 0)。

一些find实现有一个-delete谓词,你可以使用它来代替-exec rm -f {} +它,这会使它更安全、更高效。

对于上次修改时间早于今天 00:00:00 的文件,使用 GNUfind可以添加-daystart谓词。这将包括昨天最后修改的文件,即使不到 24 小时前。

通过某些find实现,您还可以执行以下操作:

find . ! -newermt 00:00:00 -delete
Run Code Online (Sandbox Code Playgroud)

删除在今天 00:00:00 之前(或恰好)最后修改的文件。