删除所有早于 X 天的文件和所有空文件夹 (linux/bash)

删除所有早于 X 天的文件和所有空文件夹 (linux/bash)

我正在递归删除所有文件:

$ find . -type f -name "*.*" -daystart -mtime +100 -exec rm -rf {} \;

随后是所有空文件夹:

$ find . -type d -empty -delete

因为我不想删除早于 100 天的文件夹,而这些文件夹可能包含早于 100 天的文件。

但是有没有更干净的方法来做到这一点或者我误解了什么?

答案1

将两个命令合二为一;

find /some/path -depth \( \( -type f -daystart -mtime +100 \) -o -type d -empty \) -ls
  • 这是删除从今天开始到最后修改时间超过100天的所有常规文件。
  • 加上所有空目录。

确认要删除哪些文件/目录后替换-ls-delete请小心并注意您要删除的内容以及从哪个路径删除!

相关内容