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

57

Comment puis-je rechercher récursivement des noms de répertoires 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 veux rechercher récursivement des répertoires avec la chaîne "99966".

    
posée Bob Perez 19.06.2012 - 19:12
la source

4 réponses

74

Vous pouvez utiliser la commande find :

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 les noms contiennent la chaîne "99966" ( -name "*99966*" ) et les afficher ( -print ).

    
réponse donnée lgarzo 19.06.2012 - 19:18
la source
14

Pour éviter tous les résultats de "Autorisation refusée", vous pouvez utiliser:

find / -type d -name "*99966*" -print 2>/dev/null

Voir cet article sur périphérique null et celui-ci sur flux standard pour plus d'informations.

    
réponse donnée Dan Fletcher 11.02.2015 - 23:18
la source
4

Vous pouvez diriger la sortie vers grep pour la mettre en surbrillance
Quelque chose comme

find / -type d | grep "directory name"

Le / indique que l’ordinateur doit être recherché dans son intégralité

    
réponse donnée Collin 26.12.2016 - 19:49
la source
3

Pour ce faire, vous pouvez utiliser find | egrep string . S'il y a trop de résultats, utilisez l'indicateur -type d pour rechercher. Exécutez la commande au début de l'arborescence à rechercher, ou vous devrez également fournir le répertoire en tant qu'argument à find .

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

Et la commande locate est également pratique: locate string

    
réponse donnée belacqua 19.06.2012 - 19:32
la source

Lire d'autres questions sur les étiquettes