![](/img/trans.png)
[英]Export result from FIND command to variable value in linux shell script?
[英]linux find command: exclude path from result
我使用find命令在一个文件夹中查找所有python文件,并排除一些文件夹。
find . -type d \\( -path ./venv -o -path ./virtualenv -o -path ./lib \\) -prune -o -iname '*.py'
它给出以下输出:
...
./tests/test_a.py
./venv
如何调整find
命令在结果集中排除./venv?
如果不指定任何操作,则find
将对与表达式匹配的任何文件隐式使用-print
。 -prune
总是评估为true(除了防止进一步递归),这就是为什么./venv
仍然最终被打印的原因。
为避免这种情况,只需在其他分支上添加-print
即可:
find . -type d \( -path ./venv -o -path ./virtualenv -o -path ./lib \) -prune \
-o -iname '*.py' -print
现在有一个动作,因此find
不再打印会被评估为true的所有内容,而是仅打印您明确查找的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.