正在四处搜索,找不到此解决方案。我想我正在寻找一个名字的叶子目录。在这个例子中,我想获得一个名为“模块”的目录列表,它没有一个名为module的子目录。查找不包含特定目录的目录
modules/package1/modules/spackage1
modules/package1/modules/spackage2
modules/package1/modules/spackage3/modules
modules/package1/modules/spackage3/modules/spackage1
modules/package2/modules/
我的愿望列表将包含
modules/package1/modules/spackage3/modules/
modules/package2/modules/
所有的目录,没有一个名为模块子目录
我开始尝试一些本没有运气
find . -name modules \! -exec sh -c 'find -name modules' \;
命名模块
-exec在退出代码上工作,好吧,让我们通过计数作为退出代码
find . -name modules -exec sh -c 'exit $(find {} -name modules|grep -n ""|tail -n1|cut -d: -f1)' \;
这应该采取称为模块的每个子目录的计数,并退出它。没有这样的爱。
您能否澄清您的示例所需列表,因为'modules/package1/modules/spackage1/modules /'不是您在示例结构中指定的目录。谢谢。 – beny23
有趣的是,我刚刚注意到 'find。 -name modules -exec sh -c'exit 0'\;' 不会返回任何结果。基于手册页,我猜测0号出口会使得它和-exec语句不存在一样。 –