Je dois trouver tous les répertoires qui contiennent un certain caractère dans leur nom et les afficher.
Donc si j'ai les répertoires:
abc cde fgh
Et je recherche "c" je devrais obtenir:
abc
cde
Je dois trouver tous les répertoires qui contiennent un certain caractère dans leur nom et les afficher.
Donc si j'ai les répertoires:
abc cde fgh
Et je recherche "c" je devrais obtenir:
abc
cde
Les commandes suivantes effectuent la requête requise:
find -name "*c*" -type d
-name "*c*"
- avec le nom contenant la lettre c
-type d
- qui est un répertoireVous pouvez exécuter la commande sur un autre répertoire (/chemin/complet/vers/rep
) en utilisant:
find /chemin/complet/vers/rep -name "*c*" -type d
Plus d'informations commande find de nixCraft
Si globstar
est activé, vous pouvez utiliser ceci
for d in **/*c*/; do echo $d; done
Le premier **
correspondra à n'importe quel chemin de sous-répertoire arbitraire. Ensuite, *c*/
correspondra aux dossiers contenant le caractère c à l'intérieur
S'il n'est pas activé, vous pouvez l'activer avec shopt -s globstar
globstar
- Si défini, le motif
**
utilisé dans un contexte d'expansion de nom de fichier correspondra à tous les fichiers et zéro ou plusieurs répertoires et sous-répertoires. Si le motif est suivi d'un/
, seuls les répertoires et sous-répertoires correspondent.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.