- 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 der Free Software Foundation als Teil der GNU Coreutils und die der BSD-Varianten, wie FreeBSD, OpenBSD, NetBSD und Apples Darwin. Beide 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.
Mit einem „.“ beginnende Dateien und Verzeichnisse werden hierbei standardmäßig nicht angezeigt, solange man dies nicht explizit mit der Option -a (für englisch all) wünscht, da unter unixartigen Betriebssystemen sogenannte versteckte Dateien und Ordner mit einem führenden Punkt gekennzeichnet 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.
In einigen Systemen können mithilfe der Option --color (für GNU ls) beziehungsweise -G (bei FreeBSDs ls) 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 GNU ls den Unixdateityp, die Dateiberechtigungen und die Dateinamenserweiterung, während hingegen das ls 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 kann auch als Kommando in einer FTP-Session verwendet werden, 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)
- ls.c - Quelltext aus der Unix Seventh Edition
Wikimedia Foundation.