在 bash 中,如何查找并删除包含特定文件的目录,仅当该文件早于 X 分钟时。
有 这个答案查找包含特定文件的目录。但是不清楚如何添加文件已存在超过 X 分钟的条件。
答案1
编辑:更简单的方法:
find . -name 'foobar.dat' -mmin +3 -exec bash -c 'rm -vr "$(dirname "$1")"' bash {} \;
基本上就是找到匹配的文件,然后删除它们的父目录。第二个“bash”字符串可以是任何内容,它只是为了避免将文件名放在“$0”中(虽然这似乎可以正常工作……)
以前不太优雅的解决方案:
我会用另一种方式来解决这个问题:
创建一个执行以下任务的小脚本
rm -r $(dirname $1)
(即删除参数的父目录)找到所有这样的文件,并对它们调用脚本:
find . -name 'foobar.dat' -mmin +3 -exec rmparent_script {} \;