103 votes

Comment rechercher tous les fichiers commençant par le nom "ABC" dans un répertoire ?

Je dois rechercher des fichiers commençant par un nom particulier. Il peut y avoir plusieurs fichiers commençant par un motif particulier et je veux lister tous ces fichiers présents dans le répertoire.

0voto

EnterUserNameHere Points 381
printf "%s" /path/to/files/ABC*

Il s'agit d'un filtrage par motif global, ancré aux deux extrémités. Cela correspondra à toutes les occurrences de fichiers commençant par "ABC", comme "ABC", "ABC.txt", "ABC123", mais pas à "xABC". Depuis la ligne de commande, utiliser 'ls' à la place de 'printf' ici est une alternative sûre cependant, selon l'opinion de qui vous êtes d'accord, 'ls' n'est pas sûr pour être utilisé dans un script. Dans ce cas, l'utilisation de 'printf' avec la correspondance des motifs globaux est considérée comme sûre. Si vous allez utiliser ceci dans un script la sortie de 'printf' ne contiendra pas un caractère de nouvelle ligne jusqu'à la fin du flux de sortie en tant que tel :

printf "%s" /path/to/files/ABC*  

Les retours :

/path/to/files/ABC /path/to/files/ABC123

Si vous avez besoin de sauts de ligne après chaque instance :

printf "%s\n" /path/to/files/ABC*

Les retours :

/path/to/files/ABC 

/path/to/files/ABC123

"/path/to/files/" reste dans la sortie si vous l'avez entré de cette façon lorsque vous avez exécuté la commande 'printf'. Sans cela, seul le nom du fichier apparaît :

printf "%s" ABC* 

Renvoie à

ABC ABC123

En supposant que vous exécutez la commande dans le répertoire dans lequel les fichiers existent.

0voto

Bhaskar Das Points 101

Supposons que je me trouve dans le répertoire racine et que je souhaite obtenir la liste du répertoire etc. uniquement : on écrit,

find -type d -name "etc"

on obtient le résultat suivant,

[root@unix /]# find -type d -name "etc"

./etc
./usr/lib/firefox/bundled/etc
./usr/lib/unix-yarn/etc
./usr/lib/unix/etc
./usr/lib/festival/etc
./usr/bin/lib/vmware-tools/lib64/libconf/etc
./usr/bin/lib/vmware-tools/lib32/libconf/etc
./usr/etc
./usr/share/doc/oddjob-0.30/sample/etc
./usr/share/festival/lib/etc
./usr/local/etc
./usr/java/jdk1.7.0_25/lib/visualvm/etc
./home/user1/Desktop/VMware Tools/vmware-tools-distrib/lib/lib64/libconf/etc
./home/user1/Desktop/VMware Tools/vmware-tools-distrib/lib/lib32/libconf/etc
./home/user1/Desktop/VMware Tools/vmware-tools-distrib/etc
./home/user1/Desktop/VMware Tools/vmware-tools-distrib/caf/etc

Un autre exemple,

On peut aussi écrire :

ls | grep "etc"

on obtient,

etc

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