Dieser Artikel stellt den Unix-Befehl dar. Für den Gebrauch bei der Übertragung von Dateien siehe ftp.
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“.
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:
-F hängt ein Zeichen an den Dateinamen an, um diese zu charakterisieren; beispielsweise * für ein Programm und / für ein Verzeichnis. An reguläre Dateien wird kein Zeichen angehängt;
-R zeigt rekursiv auch den Inhalt von Unterordnern mit an;
-a ignorieren keine Datei; andernfalls werden Dateien deren Name mit ».« (Punkt) beginnt ignoriert (versteckte Dateien);
-d zeigt Angaben über ein Verzeichnis selbst anstelle dessen Inhalt, auch bei einer symbolischen Verknüpfung auf ein Verzeichnis;
-t sortiert die Liste nach dem Datum.
Das Dateiformat kann dieses Programm nicht ausgeben, siehe file.
Farbige Ausgabe
In einigen Systemen kann eine farbliche Ausgabe mithilfe einer Option aktiviert werden:
--color bei der GNU-Implementierung; zum Bestimmen der Farbe wird die Unix-Dateiart, die -Dateirechte und die Dateinamenserweiterung berücksichtigt.
-G bei FreeBSD und macOS; hier wird die Dateinamenserweiterung nicht berücksichtigt.
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.