Я использую поиск в скрипте Bash . Как я могу изменить этот код так, чтобы он включал определенный каталог в «bin», то есть «./bin/php/» (при этом игнорируя все другие подкаталоги «bin»)?
Текущий код:
find . -name '*.php' \
-and ! -path './bin/*' \
find /bin /bin/php -maxdepth 1 -name "*.php"
$ tree /bin /bin |-- ash |-- dont_search | |-- hide_me.php | `-- hide_me.txt |-- du |-- file.php |-- fmt |-- php | |-- hide_me.txt | `-- show_me.php `-- zsh 2 directories, 184 files
$ find /bin /bin/php -maxdepth 1 -name "*.php" /bin/file.php /bin/php/show_me.php
Обратите внимание, что /bin/dont_search/hide_me.php не совпадает
Это то, что вы имели ввиду?
find . \( \! -iregex ^./bin/.\* -o -iregex ^./include/something/.\* \) \
-name \*.php
GNU найти
find . -name "*.txt" ! -iregex ".*/bin/.*"
Попробуй это:
find . ./bin/php -path ./bin -prune -o -print
Тем не менее, это будет игнорировать файлы, которые находятся в ./bin.
Кстати, это "найти", а не "найти Bash".