Fatmawati Achmad Zaenuri/Shutterstock
Wir verwenden das Linux ls
Befehl jeden Tag, ohne darüber nachzudenken. Das ist schade. Achten Sie darauf, und Sie werden viele nützliche Optionen finden – einschließlich einiger, die Sie zu Ihrem Befehlszeilenarsenal hinzufügen sollten.
ls Listet Dateien und Verzeichnisse auf
Die ls
Befehl ist wahrscheinlich der erste Befehl, auf den die meisten Linux-Benutzer stoßen. Diejenigen von uns, die in der Befehlszeile herumhängen, verwenden sie Tag für Tag, ohne darüber nachzudenken. Das könnte erklären, warum hinter diesem Befehl mehr steckt, als den meisten Benutzern bewusst ist. Wir listen Dateien damit auf, um zu sehen, was sich in einem Verzeichnis befindet. Wir listen Dateien im Langformat auf, wenn wir die Berechtigungen für eine Datei anzeigen möchten. Darüber hinaus findet es kaum Beachtung.
Die ls
Befehl ist einer dieser Befehle mit einer Fülle von Optionen. Vielleicht ist dies ein Teil des Problems. Es gibt so viele Optionen, wie können Sie sie durchsuchen, um die nützlichen zu finden? Und wie erinnerst du dich, nachdem du sie gefunden hast?
Nützliche Permutationen der ls
Befehl mit ihren Strings von Optionen und Parametern sind die perfekten Kandidaten für Aliase. Tatsächlich ist in den meisten Distributionen das, was Sie als „nackt“ bezeichnen, ls
Befehl ist eigentlich ein Alias. Unter anderem die type
Befehl kann verwendet werden, um zeige die zugrunde liegende Definition von Aliasen. Schauen wir uns die Definition von an ls
:
Typ ls

Die --color=auto
Parameter werden bei jeder Verwendung automatisch eingeschlossen ls
Befehl. Dadurch werden die unterschiedlichen Farben für die verschiedenen Dateitypen in den Listen bereitgestellt.
Einfache ls-Auflistungen
Jeder, der schon einige Zeit mit dem Linux-Terminal verbracht hat, weiß, dass standardmäßig ls
listet die Dateien und Verzeichnisse im aktuellen Verzeichnis auf.
ls

Wenn Sie möchten, dass Ihr Angebot in einer einzigen Spalte erstellt wird, verwenden Sie die -1
(eine Datei pro Zeile) Option:
ls -1

Wir werden diesen seltsam aussehenden Dateinamen am Anfang der Liste in einer Minute besprechen.
Verwenden von ls in verschiedenen Verzeichnissen
Haben ls
die Dateien in einem anderen als dem aktuellen Verzeichnis auflisten, den Pfad zum Verzeichnis übergeben an ls
auf der Kommandozeile. Sie können auch mehr als ein Verzeichnis an . übergeben ls
, und lassen Sie sie nacheinander auflisten. Hier fragen wir ls
um die Dateien in zwei Verzeichnissen aufzulisten, eines mit dem Namen „Hilfe“ und das andere mit dem Namen „gc_help“.
ls Help gc_help

Wann ls
hat den Inhalt des ersten Verzeichnisses aufgelistet, es listet den Inhalt des zweiten auf. Es druckt den Namen jedes Verzeichnisses, während es sie verarbeitet:

Verwenden von Dateimustern
Um einen Satz von Dateien selektiv aufzulisten, verwenden Sie den Mustervergleich. Das Fragezeichen „?
” steht für ein beliebiges einzelnes Zeichen und das Sternchen “*
” steht für eine beliebige Zeichenfolge. Um Dateien oder Verzeichnisse aufzulisten, deren Namen mit „ip_“ beginnen, verwenden Sie dieses Format:
ls ip_*

Verwenden Sie dieses Format, um Dateien mit der Erweiterung „.c“ aufzulisten:
ls *.c

Sie können auch verwenden ls
mit grep
, und verwenden grep
‘S Mustervergleichsfunktionen. Suchen wir nach Dateien, deren Name die Zeichenfolge „_pin_“ enthält:
ls | grep _pin_

Dies ist fast dasselbe wie die Verwendung von ls
allein, mit zwei Wildcards:
ls | grep _pin_
ls *_pin_*

Warum das gleiche? Beachten Sie die unterschiedlichen Layouts. grep
erzwingt die Ausgabe in ein einzelnes Dateinamen-pro-Zeilen-Format.
Nicht druckbare Zeichen
Es ist möglich, sich mit einem Dateinamen zu finden, der a . hat nicht druckendes oder Kontrollzeichen in seinem Dateinamen. Dies kann normalerweise passieren, wenn Sie ein Archiv erweitern, das Sie aus dem Internet heruntergeladen oder ein Git-Repository abgerufen haben, und der ursprüngliche Autor beim Erstellen einer Datei einen Fehler gemacht hat, sie jedoch nicht erkannt hat.
Unsere seltsame Datei ist eine von diesen:

Wenn wir es im Dateibrowser betrachten und „F2“ drücken, um es umzubenennen, werden die nicht druckbaren Zeichen durch ein seltsames Symbol dargestellt.

Du kannst den … benutzen -b
(Escape) Option, damit Sie sehen können, was der Dateiname tatsächlich enthält. Diese Option verursacht ls
die Escape-Sequenzen der verwenden Programmiersprache C die Kontrollzeichen darstellen.
ls -b a*

Das mysteriöse Zeichen ist ein Zeilenumbruchzeichen, das in C als „n“ dargestellt wird.
Ignorieren von Dateien
Um bestimmte Dateien aus einer Auflistung auszulassen, verwenden Sie die --hide
Möglichkeit. Angenommen, Sie möchten die Sicherungsdateien „.bak“ nicht in der Liste sehen. Sie könnten diesen Befehl verwenden:
ls
ls --hide=*.bak

Die „.bak“-Dateien sind in der zweiten Auflistung nicht enthalten.
Das lange Format-Listing
Die -l
(lange Auflistung) Option Ursachen ls
um detaillierte Informationen zu jeder Datei bereitzustellen.
ls -l

Es gibt viele Informationen hier, also lassen Sie uns durchgehen.
Die erste Sache ls
zeigt die Gesamtgröße aller Dateien in der Liste an. Dann wird jede Datei oder jedes Verzeichnis in einer eigenen Zeile angezeigt.
Der erste Satz von zehn Buchstaben und Bindestrichen ist der Dateityp und der Besitzer, die Gruppe und andere Dateiberechtigungen.
Das allererste Zeichen steht für den Dateityp. Es wird einer von:
- –: Eine normale Datei.
- B: Eine spezielle Blockdatei.
- C: Eine spezielle Zeichendatei.
- D: Ein Verzeichnis.
- l: Ein symbolischer Link.
- n: Eine Netzwerkdatei.
- P: Eine benannte Pipe.
- S: Eine Steckdose.
Die nächsten neun Zeichen sind drei Gruppen von drei Zeichen, die zusammenhängend angezeigt werden. Jede Dreiergruppe repräsentiert die Lese-, Schreib- und Ausführungsberechtigungen in dieser Reihenfolge. Wenn die Erlaubnis erteilt wird, gibt es eine r
, w
, oder x
gegenwärtig. Wenn die Berechtigung nicht erteilt wird, ein Bindestrich -
wird gezeigt.
Der erste Satz von drei Zeichen sind die Berechtigungen für den Dateibesitzer. Der zweite Satz von drei Berechtigungen ist für Gruppenmitglieder und der letzte Satz von drei Berechtigungen für andere.
Manchmal wird die Ausführungserlaubnis für die durch ein . dargestellt s
. Dies ist das setuid Bit. Wenn es vorhanden ist, bedeutet dies, dass die Datei mit den Rechten des Dateibesitzers ausgeführt wird, nicht des Benutzers, der die Datei ausführt.
Die Ausführungserlaubnis für die kann auch ein s
. Dies ist das setgid Bit. Wenn dies auf eine Datei angewendet wird, bedeutet dies, dass die Datei mit den Rechten der Gruppe des Eigentümers ausgeführt wird. Bei Verwendung mit einem Verzeichnis erhalten alle darin erstellten Dateien ihre Gruppenberechtigungen von dem, in dem sie erstellt werden, nicht von dem Benutzer, der die Datei erstellt.
Die Ausführungserlaubnis für die anderen kann manchmal durch a . dargestellt werden t
. Dies ist das klebriges bisschen. Es wird normalerweise auf Verzeichnisse angewendet. Wenn dies festgelegt ist, kann unabhängig von den Schreib- und Ausführungsrechten, die für die Dateien im Verzeichnis festgelegt sind, nur der Dateibesitzer, der Verzeichnisbesitzer oder der Root-Benutzer Dateien im Verzeichnis umbenennen oder löschen.
Das Sticky-Bit wird häufig in Ordnern wie „/tmp“ verwendet. Dies ist von allen Benutzern des Computers beschreibbar. Das Sticky Bit im Verzeichnis stellt sicher, dass Benutzer – und von ihnen gestartete Prozesse – nur ihre eigenen temporären Dateien umbenennen oder löschen können.
Wir können das Sticky-Bit im Verzeichnis „/tmp“ sehen. Beachten Sie die Verwendung der -d
(Verzeichnis)-Option. Dies bewirkt ls
über die Details des Verzeichnisses zu berichten. Ohne diese Möglichkeit ls
berichtet über die Dateien im Verzeichnis.
ls -l -d /tmp

Die Zahl nach den Berechtigungen ist die Anzahl der Hardlinks zu der Datei oder dem Verzeichnis. Bei einer Datei ist dies normalerweise einer, aber wenn andere Hardlinks erstellt werden, erhöht sich diese Zahl. Ein Verzeichnis hat normalerweise mindestens zwei feste Links. Einer ist ein Link zu sich selbst und der andere ist sein Eintrag in seinem übergeordneten Verzeichnis.
Als nächstes werden der Name des Besitzers und der Gruppe angezeigt. Es folgen die Dateigröße und das Datum der letzten Änderung der Datei. Schließlich wird der Dateiname angegeben.
Für Menschen lesbare Dateigrößen
Die Angabe der Dateigrößen in Bytes ist nicht immer praktisch. Um die Dateigrößen in den am besten geeigneten Einheiten (Kilobyte, Megabyte usw.) anzuzeigen, verwenden Sie die -h
(für Menschen lesbare) Option:
ls -l -h

Versteckte Dateien anzeigen
Um versteckte Dateien anzuzeigen, verwenden Sie die -a
(alle) Möglichkeit:
ls -l -a

Die beiden Einträge „.“ und „..“ stehen für das aktuelle Verzeichnis bzw. das übergeordnete Verzeichnis. Eine Datei namens „.base_settings“ ist nun erstmals sichtbar.
Weglassen . und .. aus Listings
Wenn Sie nicht möchten, dass Ihr Eintrag mit dem „.“ und „..“-Einträge, aber Sie möchten versteckte Dateien sehen, verwenden Sie die -A
(fast alle) Möglichkeit:
ls -l -A

Die versteckte Datei wird immer noch aufgelistet, aber das „.“ und „..“ Einträge werden unterdrückt.
Verzeichnisse rekursiv auflisten
Haben ls
listet die Dateien in allen Unterverzeichnissen auf -R
(rekursive) Option
ls -l -R

ls
arbeitet sich durch den gesamten Verzeichnisbaum unterhalb des Startverzeichnisses und listet die Dateien in jedem Unterverzeichnis auf.

Anzeige der UID und GID
Um die Benutzer-ID und die Gruppen-ID anstelle des Benutzernamens und des Gruppennamens anzuzeigen, verwenden Sie die -n
(numerische uid und gid) Option.
ls -n

Sortieren der Einträge
Sie können die Auflistung nach Erweiterung, Dateigröße oder Änderungszeit sortieren. Diese Optionen müssen nicht mit dem langen Listenformat verwendet werden, aber es ist normalerweise sinnvoll, dies zu tun. Wenn Sie nach Dateigröße sortieren, ist es sinnvoll, die Dateigrößen in der Auflistung zu sehen. Wenn Sie nach Erweiterungstyp sortieren, ist das Format der langen Auflistung nicht so wichtig.
Um nach Erweiterung zu sortieren, verwenden Sie die -X
(nach Erweiterung sortieren) Option.
ls -X -1

Die Verzeichnisse werden zuerst aufgelistet (keine Erweiterungen), dann folgen die anderen in alphabetischer Reihenfolge nach den Erweiterungen.
Um nach Dateigröße zu sortieren, verwenden Sie die -S
(nach Dateigröße sortieren) Option.
ls -l -h -S

Die Sortierreihenfolge ist vom größten zum kleinsten.
Um die Auflistung nach Änderungszeit zu sortieren, verwenden Sie die -t
(nach Änderungszeit sortieren) Option.
ls -l -t

Die Auflistung ist nach dem Änderungszeitpunkt sortiert.
Wenn der Zeitpunkt der Dateiänderung innerhalb des aktuellen Jahres liegt, werden Monat, Tag und Uhrzeit angezeigt. Wenn das Änderungsdatum nicht im aktuellen Jahr lag, werden Monat, Tag und Jahr angezeigt.
Eine schnelle Möglichkeit, die neuesten und ältesten Dateien in einem Verzeichnis abzurufen, ist die Verwendung von ls
mit dem head
und tail
Befehle.
Um die neueste Datei oder das neueste Verzeichnis abzurufen, verwenden Sie diesen Befehl:
ls -t | head -1
Um die älteste Datei oder das älteste Verzeichnis abzurufen, verwenden Sie diesen Befehl:
ls -t | tail -1

So kehren Sie die Sortierreihenfolge um
Um eine der Sortierreihenfolgen umzukehren, verwenden Sie die -r
(Umkehr-)Option.
ls -l -h -S -r

Die Auflistung ist nun von der kleinsten Datei zur größten Datei geordnet.
Und es gibt noch mehr
Schauen Sie sich die Manpage an für ls
, es gibt noch viele weitere möglichkeiten. Einige von ihnen erfüllen etwas obskure Anwendungsfälle, aber ab und zu werden Sie froh sein, sie zu kennen.
Müssen Sie die Dateizeitstempel mit der maximalen Genauigkeit sehen, die Linux bieten kann? Nutzen Sie die Vollzeitoption:
ls --full-time
Vielleicht möchten Sie die Inode-Nummer der Dateien sehen? Verwenden Sie die Inode-Option:
ls -i
Arbeiten Sie an einem monochromen Display und möchten Sie das Risiko einer Verwechslung von Dateien für Verzeichnisse und Links ausschließen? Verwenden Sie die Klassifizierungsoption, und ls
hängt eine davon an jeden Listing-Eintrag an:
- /: Ein Verzeichnis.
- @: Ein Symlink.
- |: Eine benannte Pipe.
- =: Eine Steckdose.
- *: Eine ausführbare Datei
ls -F
Graben Sie etwas. Das wirst du finden ls
ist eine reiche Ader, und Sie werden immer wieder Edelsteine zu entdecken.