ls

Aus Mikiwiki
Version vom 20. Juli 2019, 13:06 Uhr von Michi (Diskussion | Beiträge) (Verwendung)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Der Shell-Befehl ls (list) dient zum Anzeigen von Informationen über Dateien und Verzeichnisse. ls hat nur eine Standardausgabe (stdout).

Das erste Zeichen der Ausgabe von ls bezeichnet den Dateityp.

Dateityp Beschreibung
- gewöhnliche Datei
d (directory) Verzeichnis
b (block) blockorientiertes Gerät
c (character) zeichenorientiertes Gerät
l symbolischer Link
p (named pipe) FIFO-Datei
s Unix domain socket

Die nächsten neun Zeichen bezeichnen in Dreiergruppen die Zugriffsrechte von Benutzer (user), Gruppe (group) und allen anderen (other).

Zugriffsrecht Beschreibung
r (read) lesen
w (write) schreiben
x (execute) ausführen

Konfiguration

Nachsehen ob es sich beim Befehl "ls" um ein Alias handelt.

$ alias ls
alias ls='/bin/ls $LS_OPTIONS'

Ausserkraftsetzen des alias für die aktuelle Sitzung.

$ unalias ls

Zum dauerhaften Ändern der alias-Belegung kann ein eigenes Alias in die Konfigurationsdatei ".bashrc" geschrieben und damit die systemweite Vorgabe unwirksam gemacht werden.

Anzeige der definierten Parameter.

$ echo $LS_OPTION
-N --color=tty -T 0

Anzeige der definierten Farben zur Kennzeichnung der Dateitypen.

$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;...

Ein Setzen der Farben und Anzeige der Steuercodes für die Farben ist mit dircolors möglich.

Optionen

Option Beschreibung
-a Anzeige sämtlicher Dateien im Verzeichnis (auch der Punkt-Dateien).
-C Spaltenweise Anzeige der Informationen.
--color Zuordnung von Farben zu bestimmten Dateitypen.
Werte Beschreibung
--color=always "ls" zeigt immer Farben an
--color=none "ls" zeigt nie Farben an
--color=auto "ls" zeigt Farben nur bei Ausgabe in ein Terminal, verzichtet aber darauf wenn die Ausgabe an ein anderes Programm oder in eine Datei umgelenkt wird (Standardeinstellung)
-d Anzeige nur des Namens von Verzeichnissen, aber nicht ihren Inhalt.
-F Zeigt an, ob es sich um eine Datei, ein Verzeichnis oder eine ausführbare Datei handelt.
-I (Ignore) Ausblenden bestimmter Dateien.
-i Anzeige der Indexnummer (des i-Nodes).
-l Anzeige ausführlicher Informationen.
-r (reverse) Anzeige der Einträge in umgekehrter Reihenfolge.
-S (Size) Anzeige dergrössten Dateien zuerst.
-s (sectors) Anzeige der Anzahl Blöcke zu 512 Byte.
-t (time stamp) Anzeige gemäss Zeitstempel.
-x Spaltenweise Anzeige der Informationen.

Verwendung

Die Dateinamen des aktuellen Verzeichnisses werden in die Datei "file" geschrieben. Auf dem Bildschirm wird die Anzahl Dateien des aktuellen Verzeichnisses ausgegeben.

$ ls | tee file | wc -l

Der Inhalt von Datei "filelist" wird mit "cat" ausgegeben und als Argument an den Befehl "ls" übergeben.

$ ls -l $(cat filelist)

Ausgabe der Inode-Nummer für eine Datei.

$ ls -il /dev/term/a
53810 lrwxrwxrwx   1 root     root          52 Mar 13 12:49 /dev/term/a -> ../../devices/pci@1f,0/pci@1,1/ebus@1/se@14,400000:a

Anzeige aller Zeilen mit erstem Zeichen "d", also alle Verzeichnisse. grep sucht dabei in der Standardeingabe einen Zeilenanfang, auf den direkt ein d folgt.

$ ls -l | grep "^d"

Anzeige nur der Namen von Verzeichnissen.

$ ls -d */

Ausgabe nach ("-l") Erstellungsdatum und Uhrzeit ("-t") absteigend.

$ ls -ltr

Anzeige aller Zeilen, die

  • mit D oder d beginnen und von irgendeinem Zeichen ("?") gefolgt werden
  • die mit A oder a weitergehen und von irgendwelchen Zeichen ("*") gefolgt werden
  • die von einer der Ziffern von 0 bis 9 gefolgt werden und mit irgendwelchen Zeichen ("*") weitergehen
$ ls -l [Dd]?[Aa]*[0-9]*

Ausgabe ausführlicher Informationen zu allen mit "file" beginnenden Dateien, sortiert nach Time-stamp, jedoch in umgekehrter Reihenfolge ("-r").

$ ls -ltr file*

Ausgabe aller Informationen zu den drei grössten Dateien im Verzeichnis "/usr/bin".

$ ls -al /usr/bin | grep ^- | sort -nr +4 | head -3 | awk '{print $0}'

Ausgabe des Dateinamens der grössten Datei im Verzeichnis "/usr/bin".

$ ls -l /usr/bin | grep ^- | sort -nr +4 | head -1 | awk '{print $8}'

Ausgabe der Anzahl der Dateien im aktuellen Verzeichnis.

$ ls -1Ra | wc | awk '{ printf("Es gibt %s Dateien in diesem Verzeichnis.\n", $1-2) }'
$ ls -l | wc -l

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger ls (Unix)wbm Enzyklopädischer Artikel