J'ai besoin de trouver tous les annuaires contenant un certain caractère à leur nom et imprimez-les.
Donc, si j'ai les répertoires:
abc cde fgh
Et je recherche "c" je devrais avoir:
abc
cde
Les commandes suivantes effectuent la requête requise:
find -name "*c*" -type d
-name "*c*"
- avec nom contient la lettre c
-type d
- quels sont un répertoireVous pouvez exécuter la commande sur d'autres répertoires (/full/path/to/dir
) en utilisant:
find /full/path/to/dir -name "*c*" -type d
Plus d'infos Nixcraft Trouver la commande
Si globstar
est activé que vous pouvez utiliser ceci
for d in **/*c*/; do echo $d; done
La première **
correspondra à tous les chemins de sous-répertoire arbitraires. Puis *c*/
avec des dossiers de match avec le caractère C
Si ce n'est pas activé, vous pouvez l'activer avec shopt -s globstar
globstar
- Si défini, le motif
**
Utilisé dans un contexte d'expansion du nom de fichier correspondra à tous les fichiers et à zéro ou à plus de répertoires et de sous-répertoires. Si le motif est suivi d'un/
, seuls les annuaires et les sous-répertoires correspondent.