I am using find in a Bash script. How can I modify that code to include a specific directory under 'bin' , ie './bin/php/' (while still ignoring all other sub-directories of 'bin')?
Current code:
find . -name '*.php' \
-and ! -path './bin/*' \
Is that what you mean?
find . \( \! -iregex ^./bin/.\* -o -iregex ^./include/something/.\* \) \
-name \*.php
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
Notice that /bin/dont_search/hide_me.php did not match
Try this:
find . ./bin/php -path ./bin -prune -o -print
This will ignore files that are within ./bin, too, though.
By the way, it's "find" rather than "Bash find".