Как я могу ограничить поиск только поиском определенных подкаталогов?

1

Я использую поиск в скрипте Bash . Как я могу изменить этот код так, чтобы он включал определенный каталог в «bin», то есть «./bin/php/» (при этом игнорируя все остальные подкаталоги «bin»)?

Текущий код:

find . -name '*.php' \
-and ! -path './bin/*' \
yoavf
источник

Ответы:

1

Это то, что вы имели ввиду?

find . \( \! -iregex ^./bin/.\* -o -iregex ^./include/something/.\* \) \
    -name \*.php
Михаил Крелин - хакер
источник
Нет, но я переписал вопрос, так что, надеюсь, теперь я объясняю себя лучше.
yoavf
yoavf, так что я отредактировал свой ответ
Майкл Крелин - хакер
3
find /bin /bin/php -maxdepth 1 -name "*.php"

Доказательство концепции

$ tree / bin
/ бен
| - пепел
| - dont_search
| | - hide_me.php
| `- hide_me.txt
| - дю
| - file.php
| - фмт
| - php
| | - hide_me.txt
| `- show_me.php
`- зш

2 каталога, 184 файла

Результат

$ find / bin / bin / php -maxdepth 1 -name "* .php"
/bin/file.php
/bin/php/show_me.php

Обратите внимание, что /bin/dont_search/hide_me.php не совпадает

SiegeX
источник
1

GNU найти

find . -name "*.txt" ! -iregex ".*/bin/.*"
user31894
источник
1

Попробуй это:

find . ./bin/php -path ./bin -prune -o -print

Тем не менее, это будет игнорировать файлы, которые находятся в ./bin.

Кстати, это «найти», а не «найти Bash».

Деннис Уильямсон
источник