Comment puis-je rechercher récursivement des noms de répertoire avec une chaîne particulière où la chaîne ne représente qu'une partie du nom du répertoire


73

Comment puis-je rechercher de manière récursive des noms de répertoire avec une chaîne particulière où la chaîne n'est qu'une partie du nom du répertoire?

Par exemple: le nom du répertoire est "8.0.3-99966_en", mais je souhaite rechercher de manière récursive des répertoires avec la chaîne "99966".

Réponses:


95

Vous pouvez utiliser la findcommande:

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Exemple:

find ~ -type d -name "*99966*" -print

devrait trouver tous les répertoires ( -type d) à partir de votre répertoire personnel ( ~) dont le nom contient la chaîne "99966" ( -name "*99966*") et les afficher ( -print).


Comment puis-je exclure un certain répertoire de la recherche? J'ai besoin de chercher / mais j'obtiens des tonnes de / proc résultats dont je me moque.
Kozuch

@Kuzuch (après un certain temps!): Vous pouvez utiliser un grep négatif pour rediriger la recherche sinf dans une recommandation telle que: find <what>> | grep -v "/ proc" qui filtrera toutes les lignes contenant la chaîne de recherche.
Juan Lanus


9

Vous pouvez diriger la sortie vers grepl'avoir sélectionner le nom du répertoire
Quelque chose comme

find / -type d | grep "directory name"

La /indique pour rechercher l'ordinateur entier


@ Zanna vous avez raison, j'ai modifié la réponse. Merci de l'avoir signalé
Collin

3

Un moyen facile de faire cela est d'utiliser find | egrep string. S'il y a trop de résultats, utilisez le -type ddrapeau pour rechercher. Exécutez la commande au début de l'arborescence de répertoires dans laquelle vous souhaitez effectuer la recherche, ou vous devrez également fournir le répertoire comme argument find.

Une autre façon de faire est d'utiliser ls -laR | egrep ^d.

Et la locatecommande est également utile:locate string

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.