![关于递归删除特定文件类型](https://linux22.com/image/81151/%E5%85%B3%E4%BA%8E%E9%80%92%E5%BD%92%E5%88%A0%E9%99%A4%E7%89%B9%E5%AE%9A%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B.png)
我想从任何目录及其子目录中删除特定的文件类型,例如 *.bak 文件。
我使用以下命令来查找文件。
find <path> -name "*.bak" -type f
但是,当我尝试执行相同的操作(条件是仅列出 10 天以上的文件)时,我没有得到任何结果:
find <path> -name "*.bak" -type f -ctime +10
我在最后一部分错了,尽管不确定是什么。
编辑:是的,现在我只想递归查找文件夹内扩展名为 bak 且时间超过 10 天的文件。
答案1
find
忽略-atime
、mtime
、-ctime
以及-*min
对应项的任何小数时间。
因此,-ctime +10
表示索引节点在 11 天或更早之前发生更改的文件。
要获取索引节点在 10 天或更早之前更改过的文件:
find <path> -name "*.bak" -type f -ctime +9
另外,如果您只想检查修改时间(而不是 inode 更改时间),您可以执行以下操作:
find <path> -name "*.bak" -type f -mtime +9