Comment puis-je limiter la recherche à une recherche uniquement dans des sous-répertoires spécifiques?

1

j'utilise trouver dans un Frapper scénario. Comment puis-je modifier ce code pour inclure un répertoire spécifique sous 'bin', c'est-à-dire './bin/php/' (en ignorant tous les autres sous-répertoires de 'bin')?

Code actuel:

find . -name '*.php' \
-and ! -path './bin/*' \
yoavf
la source

Réponses:

1

Est-ce ce que vous voulez dire?

find . \( \! -iregex ^./bin/.\* -o -iregex ^./include/something/.\* \) \
    -name \*.php
Michael Krelin - hacker
la source
Non, mais j'ai récrit la question et j'espère pouvoir mieux m'expliquer maintenant.
yoavf
yoavf, alors j'ai édité ma réponse
Michael Krelin - hacker
2
find /bin /bin/php -maxdepth 1 -name "*.php"

Preuve de concept

$ 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

Résultat

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

Remarquerez que /bin/dont_search/hide_me.php ne correspond pas

SiegeX
la source
1

Recherche GNU

find . -name "*.txt" ! -iregex ".*/bin/.*"
user31894
la source
1

Essaye ça:

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

Cela ignorera cependant les fichiers contenus dans ./bin.

Au fait, c'est "trouver" plutôt que "trouver Bash".

Dennis Williamson
la source