2 votes

Comment afficher les fichiers cachés dont les noms correspondent à un motif avec ls ?

Considérons un répertoire qui contient les éléments suivants. abc-dir1 est un répertoire. D'autres sont des fichiers.

abc-dir1
abc-file1
.abc-file2
def-file1

ls -d *abc* produit la liste 1 :

abc-dir1  
abc-file1

Je souhaite afficher tous les répertoires et fichiers (y compris les répertoires et fichiers cachés) dont les noms correspondent à *abc* La liste 2 est ce que je veux :

abc-dir1  
abc-file1
.abc-file2

Mais ls -a -d *abc* produit toujours la liste 1. Il semble donc que l'existence de *abc* remplace l'effet de -a option. Existe-t-il un moyen d'afficher la liste 2 avec ls ?

5voto

tso Points 3226

Les fichiers cachés commencent par un point, les fichiers normaux non, donc :

ls -d {.,}*abc*

4voto

chepner Points 54078

Allumez le dotglob option.

$ shopt -s dotglob
$ printf '%s\n' *abc*
abc-dir1  
abc-file1
.abc-file2

Si vous voulez vraiment montrer au dossier que " commencer " avec abc (avec ou sans initiale . ), utilisez plutôt un modèle étendu.

$ shopt -s extglob
$ printf '%s\n' ?(.)abc*

J'ai utilisé printf à la place de ls . A moins que vous n'utilisiez une ou plusieurs options avec ls pour trier, afficher des métadonnées supplémentaires, etc. Il n'est pas nécessaire d'exécuter un programme externe pour afficher les noms de fichiers.

0voto

mebada Points 554

La combinaison de ls -al et de grep suffira.

mebada@mebada-T430:~$ ls -al | grep zil
drwx------   4 mebada mebada       4096 Jan 18 01:14 .mozilla

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X