GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Ausgabe von Ls hat Zeilenumbrüche, wird aber in einer einzigen Zeile angezeigt. Wieso den?

Ich glaube, ich übersehe einen relativ grundlegenden Punkt in Bezug auf Shell. Ausgabe von ls Der Befehl trennt die Ausgabe standardmäßig durch Zeilenumbrüche, aber die Shell zeigt die Ausgabe in einer einzigen Zeile an.

Kann mir das jemand erklären? Ich war immer davon ausgegangen, dass die Ausgabe einfach durch Leerzeichen getrennt wurde, aber jetzt, wo ich die Ausgabe durch Zeilenumbrüche getrennt sehe, würde ich erwarten, dass die Ausgabe in separaten Zeilen angezeigt wird.

Beispiel:

[email protected]:~/lpi103-4$ ls text*
text1  text2  text3

od zeigt, dass die Ausgabe durch Zeilenumbrüche getrennt ist:

[email protected]:~/lpi103-4$ ls text* | od -c
0000000   t   e   x   t   1  n   t   e   x   t   2  n   t   e   x   t
0000020   3  n
0000022

Wenn Zeilenumbrüche vorhanden sind, warum wird die Ausgabe dann nicht wie folgt angezeigt:

text1 
text2
text3

Akzeptierte Antwort:

Wenn Sie die Ausgabe weiterleiten, ls verhält sich anders.

Diese Tatsache ist in der Info-Dokumentation versteckt:

Wenn die Standardausgabe ein Terminal ist, erfolgt die Ausgabe in Spalten (vertikal sortiert) und Steuerzeichen werden als Fragezeichen ausgegeben; andernfalls wird die Ausgabe einzeln pro Zeile aufgelistet und die Steuerzeichen werden unverändert ausgegeben.

Um es zu beweisen, versuchen Sie es mit Laufen

ls

und dann

ls | less

Das heißt, wenn Sie wollen, dass die Ausgabe garantiert eine Datei pro Zeile ist, unabhängig davon, ob sie geleitet oder umgeleitet wird, müssen Sie

ausführen
ls -1

(-1 ist die Nummer eins)

Oder Sie können ls | less spaltenweise ausgeben durch Ausführen

ls -C

(-C ist ein großes C)


Linux
  1. Redundanz aus Ausgabespalten entfernen?

  2. Wie ändere ich die Audioausgabe von der Befehlszeile auf HDMI?

  3. Warum gibt Ls -l eine andere Größe als Ls -s aus?

  4. Iteration über jede Zeile der Ausgabe von ls -l

  5. So drucken Sie Linux-Gruppennamen in mehreren Zeilen anstelle einer einzeiligen Ausgabe

So sichern Sie eine einzelne MySQL-Datenbank über die Befehlszeile

Wie entferne ich eine einzelne Zeile aus dem Verlauf?

Ausgabe von Sensoren einfärben?

Auslassen der ersten Zeile in jeder Linux-Befehlsausgabe

Befehlszeile:Substring aus der Ausgabe extrahieren

Clonezilla von der Befehlszeile