Was ist der Unterschied zwischen "dir" und "ls"?

17

Ich habe die Manpages von dirund verglichen lsund sie scheinen genau gleich zu sein. Beide sind Teil von GNU coreutils und "list directory contents".

Der einzige Unterschied, den ich bisher gesehen habe, ist, dass dirdie Ausgabe nicht eingefärbt wird.

Warum gibt es also zwei Befehle? Gibt es einen Unterschied, den ich verpasst habe? Warum sollte man es vorziehen , dirüber ls?

Martin Thoma
quelle
8
Man würde nicht! Je!
Bananguin

Antworten:

20

Ich würde gerne denken, dass dires nur aus Gründen der Abwärtskompatibilität gibt .

Aus GNU Coreutils :

dir ist äquivalent zu ls -C -b; Das heißt, Dateien werden standardmäßig in Spalten aufgelistet und vertikal sortiert. Sonderzeichen werden durch Escape-Sequenzen mit umgekehrten Schrägstrichen dargestellt.

Übrigens lsfärbt die Ausgabe nicht standardmäßig ein: Dies liegt daran, dass die meisten Distributionen Alias lszu ls --color=autoIn /etc/profile.d. Geben Sie für einen Test unalias lsdann Folgendes ein ls: Es wird farblos.

Renan
quelle
6
dirwird aus Gründen der Abwärtskompatibilität nicht bereitgestellt. Funktioniert stattdessen lswie aus Gründen der Abwärtskompatibilität (und weil viele Benutzer dies wünschen) und dirwird als Alternative bereitgestellt, die die GNU-Entwickler im Allgemeinen vorziehen, da ihre Ausgabe geräteunabhängig ist. Siehe 4.5 Standards für Interfaces Generell in den GNU-Codierungsstandards und meine Antwort auf diese AU-Frage für Details.
Eliah Kagan
8

dirDies ist kein Unix-Standardbefehl, sondern wahrscheinlich nur eine Art Alias ​​/ Klon, um Windows-Benutzern (und möglicherweise VAX-VMS und anderen Betriebssystemen, unter denen dirDateien aufgelistet wurden) eine gewisse Vertrautheit zu vermitteln .

jlliagre
quelle