答案1
你是这个意思吗?
find . \( \! -iregex ^./bin/.\* -o -iregex ^./include/something/.\* \) \
-name \*.php
答案2
find /bin /bin/php -maxdepth 1 -name "*.php"
概念验证
$ 树/bin /垃圾桶 |-- 灰分 |-- 不要搜索 ||-- 隐藏我.php |`--隐藏我.txt |-- 杜 |-- 文件.php |-- 格式化 |-php | |-- 隐藏我.txt |`--显示我.php `-zsh 2 个目录,184 个文件
结果
$ 查找 /bin /bin/php -maxdepth 1 -name "*.php" /bin/文件.php /bin/php/show_me.php
请注意/bin/dont_search/hide_me.php不匹配
答案3
尝试这个:
find . ./bin/php -path ./bin -prune -o -print
但这也会忽略 ./bin 内的文件。
顺便说一下,它是“find”而不是“Bash find”。
答案4
GNU 查找
find . -name "*.txt" ! -iregex ".*/bin/.*"