So erhalten Sie eine Liste mit Dateinamen in verschiedenen Zeilen

116

Ich möchte eine Liste aller Dateien in einem Verzeichnis wie mit erhalten ls, damit sich jeder Dateiname in einer separaten Zeile befindet, ohne die zusätzlichen Details von ls -l. Ich schaute ls --helpund fand keine Lösung. Ich habe es versucht

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

Es wird jedoch lskeine feste Anzahl von Leerzeichen zwischen den Spalten verwendet. Irgendeine Idee, wie das geht, vorzugsweise in einer Zeile?

Amir Rachum
quelle

Antworten:

259

ls -1

Das ist eine Zahl, nicht klein L.

Šimon Tóth
quelle
5
Ich sehe dies in der Dokumentation: Kreuz -x, Kommas -m, horizontal -x, lang -l, einspaltig -1, ausführlich -l, vertikal -C Ich bin mir nicht sicher, wie sie auf einige davon gekommen sind.
Alexander Taylor
23

ls -1. Aus der Hilfe:

-1 Liste eine Datei pro Zeile

Funktioniert mit Cygwin und FreeBSD, ist also wahrscheinlich nicht zu GNU-spezifisch.

jhwist
quelle
Funktioniert auch unter Ubuntu. Danke
Yonatan Simson
6

Vielleicht:

ls | awk '{print $NF}'
Eelvex
quelle
Hinweis: Ein Dateiname mit Leerzeichen wie "Äpfel und Birnen.jpg" wird zu "pears.jpg"
oknate
4

ls | cat ... oder möglicherweise, ls -1

Johan Kotlinski
quelle
4
Bitte vermeiden Sie die nutzlose Verwendung von Katze :)
jhwist
3
catist in diesem Fall nicht nutzlos. Es formatiert die Ausgabe von lsin einer Spalte, wie OP es verlangt.
Felix Eve
3

Verwenden Sie den Befehl sed, um einzelne Spalten aufzulisten

ls -l | sed 's/\(^[^0-9].\*[0-9]\*:[0-9]\*\) \(.*\)/\2/'
vara
quelle
ls -lerzeugt die gleiche Ausgabe wie Ihre gesamte Antwort. Nicht sicher, was sedhier hinzugefügt wird ...
Felix Eve
3

Versuche dies:

$ ls | xargs -n num

Hier numist die Anzahl der Spalten, in denen Sie auflisten möchten.

Honeytechiebee
quelle
1

Zuerst können Sie dies verwenden. Es wird eine Datei pro Zeile angezeigt.

ls -l | sed 's /(.*) (. *) $ / \ 2 /'

oder Sie können so verwenden

finden . -maxdepth 1 | sed 's /.///'

beide Dinge sind gleich.

Manikandan Rajendran
quelle
Ich bekomme den Fehlersed: -e expression #1, char 16: invalid reference \2 on `s' command's RHS
Felix Eve
0

Dies wird auch reichen

ls -l | awk '{print $NF}'
Vicky
quelle
1
Wie unterscheidet sich das praktisch von Eelvex ' Antwort ?
Alle Arbeiter sind wesentlich
0

Dies funktioniert auch: echo -e "\ n $ (ls)"

Anshul Ayushya
quelle