16 votes

Trouver tous les répertoires contenant un certain caractère et les afficher

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

23voto

Yaron Points 614

Les commandes suivantes effectuent la requête requise:

find -name "*c*" -type d
  • commence par le répertoire actuel (pas besoin de spécifier le répertoire en cas de répertoire actuel)
  • -name "*c*" - avec le nom contenant la lettre c
  • -type d - qui est un répertoire

Vous 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

1voto

phuclv Points 22397

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.

SistemesEz.com

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.

Powered by:

X