ls (Unix)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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“.

Geschichte[Bearbeiten]

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[Bearbeiten]

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 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ür ls -l und l für ls, um Tipparbeit bei diesen häufig genutzten Befehlsvarianten zu sparen.

Aufrufbeispiel[Bearbeiten]

$ 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 Hardlinks, 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.

Sonstiges[Bearbeiten]

ls ist ebenfalls ein Kommando im FTP. Hierbei wird jedoch nicht das ls-Kommandozeilenprogramm aufgerufen, sondern eine Funktion im FTP-Client, welche ein LIST- oder NLST-Kommando an den FTP-Server schickt, um eine Verzeichnisliste vom Server anzufordern. Siehe dazu das Unix-Kommando ftp.

Weblinks[Bearbeiten]