我正在递归删除所有文件:
$ 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
请小心并注意您要删除的内容以及从哪个路径删除!