我想找到包含某个文件的所有目录,然后删除这些目录。和
find . -name thatcertainfile -execdir pwd \;
我获得了要删除的所有目录的列表,但是如何即时删除所有这些目录呢?请注意,我想删除整个目录,而不仅仅是文件本身,我可以在其中使用
find . -name thatcertainfile -exec rm -r {} \;
答案1
尝试这个命令:
rm -rf $(find . -name thatcertainfile -execdir pwd \;)
它应该告诉 ,rm -rf
它必须删除的是命令的输出。例如,如果您的命令的输出是/home/guest/Documents
我显示的将在rm -rf /home/guest/Documents
.
答案2
答案3
该管道应该能够完成这项工作,并且不会受到名称中带有空格的目录的影响。
find . -name thatcertainfile -print0 | xargs --null dirname -z | xargs --null rm -r
如果有人发现这有问题,我想知道。