122 votes

Comment obtenir une liste de noms de fichiers dans différentes lignes

Je veux obtenir une liste de tous les fichiers d'un répertoire, comme avec ls afin que chaque nom de fichier soit sur une ligne séparée, sans les détails supplémentaires fournis par la commande ls -l . J'ai regardé ls --help et n'a pas trouvé de solution. J'ai essayé de faire

ls -l | cut --fields=9 -d" "

mais ls n'utilise pas un nombre fixe d'espaces entre les colonnes. Avez-vous une idée de la façon de procéder, de préférence en une seule ligne ?

269voto

Let_Me_Be Points 16797

ls -1

C'est un nombre, pas petit L .

5 votes

Je vois ceci dans la documentation : cross -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C je ne suis pas sûr de savoir comment ils ont trouvé certains de ces éléments.

23voto

jhwist Points 5270

ls -1 . De l'aide :

-1 liste un fichier par ligne

Fonctionne sur cygwin et FreeBSD, donc ce n'est probablement pas trop spécifique à GNU.

0 votes

Fonctionne également sur Ubuntu. Merci

12voto

rene Points 14522

Solution sans tuyau :-)

 ls --format single-column

Notez que les options longues ne sont prises en charge que par le système de gestion de l'information. GNU coreutils donde BSD ls ne prend en charge que les arguments courts -1

6voto

Eelvex Points 4331

Peut-être :

ls | awk '{print $NF}'

0 votes

Note : un nom de fichier avec des espaces comme "pommes et poires.jpg" sera transformé en "poires.jpg".

5voto

kotlinski Points 12815

ls | cat ... ou peut-être, ls -1

4 votes

Veuillez éviter l'utilisation inutile de chat :)

3 votes

cat n'est pas inutile dans ce cas. Il formate la sortie de ls en une seule colonne comme le demande le PO.

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