同时排除某个目录(查找命令)-BASH

时间:2019-05-21 21:13:02

标签: bash

此Bash脚本遍历/ app目录中的每个文件。

这是树层次结构

/app
_/a
-/b
-/test/unittest/python/test.py

问题是,我不想执行皮棉步骤。 如何排除测试目录?

...
for file in $(find /app -name '*.py'); do
        filename=$(basename $file)
        if [[ $filename != "__init__.py" ]] ; then
                echo "$file"
                pylint "${file}" --rcfile="${lint_path}" || exit 1
        fi
done

这是一种解决问题的方法,不确定是否正确。不起作用!

$(find /app -name '*.py' -not -path '*test*')

1 个答案:

答案 0 :(得分:1)

使用-prune选项可以防止进入test目录。

您还可以在__init__.py中排除find,因此您无需使用if进行测试。

$(find /app -type d -name test -prune -o -type f -name '*.py' ! -name '__init__.py' -print)