Ls (Unix)

ls ist ein durch POSIX und die Single UNIX Specification definierter Befehl auf der Kommandozeile, der in Unix- und unixoiden Systemen implementiert ist, um den Inhalt eines Verzeichnisses anzeigen zu lassen. Es ist eines der am häufigsten benutzen Unix-Kommandos. ls steht für „list“.

Geschichte

Ein ls-Dienstprogramm erschien in der ursprünglichen Version von AT&T UNIX. Der Name leitet sich vom ähnlichen Befehl list bzw. ls in Multics ab.

Heute gibt es verschiedene Versionen von ls. Unter anderem gibt es die Version von OpenSolaris, der Free Software Foundation als Teil der GNU Coreutils und die der BSD-Varianten, wie FreeBSD, OpenBSD, NetBSD und Apples Darwin. Alle genannten sind freie Software und Open Source.

Grundfunktion

Unix und unixoide Betriebssysteme kennen das Konzept des Arbeitsverzeichnisses, was nichts anderes bedeutet als die aktuelle eigene Position in der Hierarchie der ineinander verschachtelten Verzeichnisse. Ruft man nun ls ohne Parameter auf, zeigt es den Inhalt des Arbeitsverzeichnisses an. Gibt man zusätzlich beliebige Dateien und/oder Verzeichnisse ohne weitere Parameter an, werden all diese Dateien und die Inhalte dieser Ordner aufgelistet werden. Zumeist werden dabei lediglich die Dateinamen ohne weitere Details (mehrspaltig) aufgelistet. Das konkrete Verhalten ist voreingestellt und variiert in einzelnen Systemen. Ein Administrator kann die Vorgabe systemweit ändern, einfache Benutzer nur für sich selbst.

Um weitere Details in den aufgelisteten Einträgen der Liste ausgeben zu lassen, können Optionen genutzt werden. Eine Auswahl an Optionen:

Das Dateiformat kann dieses Programm nicht ausgeben, siehe file.

Farbige Ausgabe

ls kann den Dateinamen abhängig von den Eigenschaften der Datei unterschiedlich einfärben

In einigen Systemen kann eine farbliche Ausgabe mithilfe einer Option aktiviert werden:

Auf vielen Systemen muss man die Option für Farbhervorhebung nicht angeben, weil sie mit einem Aliases in der Konfiguration der Kommandozeile bereits automatisch vorausgewählt ist.

Weitere Beispiele für beliebte Aliase sind ll für ls -l und l für ls, um Tipparbeit bei diesen häufig genutzten Befehlsvarianten zu sparen. In Kombination mit der Option -l wird oft die Option -h angegeben, um die Dateigrößen human readable anzuzeigen – damit ist gemeint, dass die Dateigrößen gerundet und mit SI-Präfix angezeigt werden, also beispielsweise 4,2M anstelle von 4351902.

Aufrufbeispiel

$ ls -l
drwxr--r--   1 fred  editors   4096  drafts
-rw-r--r--   1 fred  editors  30405  edition-32
-r-xr-xr-x   1 fred  fred      8460  edit

Die Ausgabe (stdout) enthält folgende Informationen: Benutzerrechte, Anzahl der harten Links, Besitzer, Gruppe, Größe der Datei in Byte, Dateiname.

Alle Dateiinformationen sind in Inodes hinterlegt. Um diese anzuzeigen, wird der Parameter -i benötigt. Dabei wird der Unterschied zwischen Hardlinks und Softlinks deutlich.