删除另一个目录中任意深度的目录
我使用find诸如 之类的基本参数-name,但阅读手册并没有帮助我找到任意深度的嵌套文件夹。
具体来说,我想查找(并删除)inputs名为cromwell-executions. 有多个同名的封闭文件夹(但如果相关,则不嵌套),每个inputs文件夹都可以包含多个不同深度的文件夹实例。
我怎样才能做到这一点find?
回答
您正在寻找-path主。选择路径匹配的每个目录,*/cromwell-executions/*如果已命名,则将其排队以进行删除inputs。谓词-prune确保find不会下降到在上一步中标记为要删除的目录。
find . -type d -path '*/cromwell-executions/*' -name 'inputs' -exec echo rm -r {} + -prune
echo如果输出看起来不错,则删除。