web-dev-qa-db-fra.com

Dossier de recherche Linux dans les sous-dossiers

J'essaie de trouver un répertoire nommé 480debugerror imbriqué dans des répertoires enfants. Je ne connais pas le chemin exact, ni même si j'ai l'orthographe exacte du répertoire que je veux trouver.

Existe-t-il une commande Linux pour rechercher des répertoires avec un préfixe ou un suffixe donné, par exemple des répertoires avec un nom "debug" ou "erreur de débogage", avec un préfixe ou un suffixe inconnu?

18
Bharanikumar

find c'est ce dont vous avez besoin:

$ find -type d -name '*debugerror*'

ou

$ find -type d -name '480debugerror'

si vous êtes certain du nom du dossier.

15
thkala
find . -type d \( -iname '*error*' -o -iname '*debug*' \) 
7
Zsolt Botykai
locate -i "480debugerror"

vérifiera une base de données qui répertorie tous les fichiers indexés sur votre PC. J'ai souvent des scénarios comme celui-ci et je fais donc des recherches comme:

locate -i "debug" | grep -i "log"

qui trouve tous les fichiers qui ont dans leur chemin (quel que soit le cas [c'est ce que -i veut dire]) "debug" et "log" (Si vous ne le savez pas, le | grep signifie une recherche dans les résultats produits par local)

L’avantage de localiser sur localiser est que localiser produira une sortie beaucoup plus rapidement (puisqu’il ne fait que vérifier une base de données), mais si le fichier/dossier n’est pas indexé, il ne trouvera rien. (pour mettre à jour la base de données, vous pouvez utiliser Sudo updatedb)

1
jcuenod

En bash,

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

recherche récursivement les répertoires dont le nom contient 480, debug ou error.

1
user2394284