Comment puis-je rechercher de manière récursive 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?
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".
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 le nom contient la chaîne "99966" (-name "*99966*"
) et les afficher (-print
).
Pour éviter tous les résultats "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.
Vous pouvez diriger la sortie vers grep
pour qu’elle mette en surbrillance le nom du répertoire.
Quelque chose comme
find / -type d | grep "directory name"
Le /
indique une recherche dans tout l'ordinateur
Un moyen facile de faire cela consiste à utiliser find | egrep string
. S'il y a trop de résultats, utilisez l'indicateur -type d
pour find. 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 en tant qu’argument à find
name__.
Une autre façon de faire consiste à utiliser ls -laR | egrep ^d
.
Et la commande locate
est également utile: locate string