ls
kann tatsächlich feststellen, ob es an ein Terminal oder eine Datei ausgegeben wird (mit dem isatty
-Bibliotheksaufruf). Wenn es eine Konsole erkennt, wird es versuchen, es für eine einfachere Anzeige kompakter zu machen.
ls
verhält sich automatisch wie ls -1
beim Pipettieren.
Dies ist normalerweise das, was Sie wollen, wenn Sie ls
zu awk
oder etwas ähnliches pipen, da es die Ausgabe von ls
Zeile für Zeile behandelt.
Um dieses Standardverhalten zu überschreiben, können Sie ls -C | cat
verwenden.
Damit jede Zeile nur einen Eintrag enthält, kann der Befehl, über den die Ausgabe geleitet wird, so funktionieren, wie es wahrscheinlich wäre. Zum Beispiel (die Ausgabe ls
vorausgesetzt) würde Folgendes wahrscheinlich nicht das sein, was Sie wollen:
Aber weil sort
nicht wusste, dass es mehr als ein Element pro Zeile gab, konnte es nichts machen. Vergleichen Sie dies mit dem, was tatsächlich passiert:
Sie können das (unerwartete) erste Verhalten erreichen, indem Sie -C
an ls
übergeben.
Tags und Links bash