- 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.
ls
ist eines der am häufigsten benutzen Unix-Kommandos. ls steht für „list segments“.Inhaltsverzeichnis
Geschichte
Ein ls-Dienstprogramm erschien in der ursprünglichen Version von AT&T UNIX. Der Name leitet sich von einem ähnlichen Befehl 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.
Funktion
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 zusätzliche Parameter auf, zeigt es den Inhalt des Arbeitsverzeichnisses an. Der Benutzer kann zusätzlich eine beliebige Liste an Dateien und Ordnern angeben, wobei dann all diese Dateien und die Inhalte dieser Ordner aufgelistet werden.Ohne Optionen stellt
ls
lediglich die Dateinamen in einer Liste dar. Dies macht es jedoch schwierig Dateityp, -berechtigungen und -größe festzustellen. Die gebräuchlichsten Optionen zur Anzeige dieser Informationen und zur Veränderung des Aussehens der Liste sind:-l
steht für Langformat; Darstellung des Unixdateityps (ob Datei, Verzeichnis, Verknüpfung, Pipe oder Gerätedatei), Dateiberechtigungen, Anzahl der „Hard Links“ auf die Datei, Besitzer, Benutzergruppe, Größe, Änderungsdatum und Dateiname.-F
hängt ein Zeichen an den Dateinamen an um die Datei zu charakterisieren; beispielsweise*
für ein Programm und/
für ein Verzeichnis. An normale Dateien wird kein Zeichen angehängt.-R
zeigt auch den Inhalt von Unterordnern mit an.-a
zeigt auch versteckte Dateien (deren Name mit einem Punkt beginnt) an.
In einigen Systemen können mithilfe der Option
--color
(für GNUls
) beziehungsweise-G
(bei FreeBSDsls
) verschiedene Dateitypen farblich hervorgehoben und unterschieden werden, statt dazu verschiedene Zeichen zu nutzen wie es mit-F
der Fall wäre. Um zu bestimmen, welche Farbe zur Darstellung einer Datei genutzt wird, prüft GNUls
den Unixdateityp, die Dateiberechtigungen und die Dateinamenserweiterung, während hingegen dasls
von FreeBSD nur den Unixdateityp und die Dateiberechtigungen hierfür heranzieht. Wird die Option für Farbunterscheidung von Dateien angegeben, sieht die Ausgabe etwa wie folgt aus:brw-r--r-- 1 unixguy staff 64, 64 Jan 27 05:52 block crw-r--r-- 1 unixguy staff 64, 255 Jan 26 13:57 character -rw-r--r-- 1 unixguy staff 290 Jan 26 14:08 compressed.gz -rw-r--r-- 1 unixguy staff 331836 Jan 26 14:06 data.ppm drwxrwx--x 2 unixguy staff 48 Jan 26 11:28 directory -rwxrwx--x 1 unixguy staff 29 Jan 26 14:03 executable prw-r--r-- 1 unixguy staff 0 Jan 26 11:50 fifo lrwxrwxrwx 1 unixguy staff 3 Jan 26 11:44 link -> dir -rw-rw---- 1 unixguy staff 217 Jan 26 14:08 regularfile
Auf vielen Systemen muss man jedoch die Option für Farbhervorhebung nicht gesondert angeben, da diese zumeist mittels eines Aliases in der Konfiguration der Kommandozeile bereits automatisch vorausgewählt ist. Weitere Beispiele für beliebte Aliase sind
ll
fürls -l
undl
fürls
, um Tipparbeit bei diesen häufig genutzten Befehlsvarianten zu sparen.Aufrufbeispiel
Anhand des folgenden Beispiels wird die Ausgabe von ls unter Nutzung zweier verschiedener Parameter demonstriert:
$ pwd /home/fred $ 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 $ ls -F drafts/ edition-32 edit*
Benutzer „fred“ hat in diesem Beispiel einen „drafts“ genannten Ordner, eine gewöhnliche Datei mit Namen „edition-32“ und ein Programm „edit“ innerhalb seines Benutzerverzeichnisses. ls stellt dabei die eingestellten Dateiberechtigungen für den Dateibesitzer, die Benutzergruppe und alle übrigen Benutzer in der für Unix-Dateirechte üblichen Kurzschreibweise jeweils in Dreierblöcken dar.
Sonstiges
ls ist ebenfalls ein Kommando im FTP. Hierbei wird jedoch nicht das ls-Kommandozeilenprogramm aufgerufen, sondern eine Funktion im FTP-Client, welche ein
LIST
- oderNLST
-Kommando an den FTP-Server schickt, um eine Verzeichnisliste vom Server anzufordern. Siehe dazu das Unix-Kommando ftp.Weblinks
- ls-Spezifikation der Single Unix Specification (englisch)
- ls bei LinuxQuestions.org (englisch)
- GNU-ls-Quelltext (als Teil der GNU-Coreutils)
- UNIX ls-Quelltext
Kategorien:- Unix-Software
- GNU core utilities
Wikimedia Foundation.