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.
Réponses
Trop de publicités?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.
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
- Réponses précédentes
- Plus de réponses