So verwenden Sie den ls-Befehl zum Auflisten von Dateien und Verzeichnissen unter Linux

Wir verwenden den Linux-Befehl ls 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

Der Befehl ls 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.

Der Befehl ls 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 des ls-Befehls mit ihren Strings von Optionen und Parametern sind die perfekten Kandidaten für Aliase. In den meisten Distributionen ist das, was Sie als „naked“ ls-Befehl bezeichnen, tatsächlich ein Alias. Der type-Befehl kann unter anderem verwendet werden, um zeige die zugrunde liegende Definition von Aliasen. Schauen wir uns die Definition von ls an:

Typ ls

Die Parameter –color=auto werden jedes Mal automatisch eingeschlossen, wenn Sie den Befehl ls verwenden. 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 ls standardmäßig die Dateien und Verzeichnisse im aktuellen Verzeichnis auflistet.

ls

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

ls -1

Wir werden diesen seltsam aussehenden Dateinamen oben in der Liste in einer Minute besprechen.

Verwenden von ls in verschiedenen Verzeichnissen

Damit ls die Dateien in einem anderen als dem aktuellen Verzeichnis auflistet, übergeben Sie den Pfad zum Verzeichnis in der Befehlszeile an ls. Sie können auch mehrere Verzeichnisse an ls übergeben und diese nacheinander auflisten lassen. Hier bitten wir ls, die Dateien in zwei Verzeichnissen aufzulisten, eines namens „Help“ und das andere namens „gc_help“.

ls Help gc_help

Wenn ls den Inhalt des ersten Verzeichnisses aufgelistet hat, listet es 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 ls mit grep und grep’s verwenden 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 Platzhaltern:

ls | grep _pin_
ls *_pin_*

Warum fast das gleiche? Beachten Sie die unterschiedlichen Layouts. grep erzwingt die Ausgabe in ein einzelnes Dateinamen-pro-Zeilen-Format.

  So verwenden Sie den chown-Befehl unter Linux

Nicht druckbare Zeichen

Es ist möglich, sich mit einem Dateinamen zu finden, der ein 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.

Sie können die Option -b (Escape) verwenden, um zu sehen, was der Dateiname tatsächlich enthält. Diese Option bewirkt, dass ls die Escape-Sequenzen des verwendet Programmiersprache C um die Kontrollzeichen darzustellen.

ls -b a*

Das mysteriöse Zeichen entpuppt sich als Zeilenumbruchzeichen, das in C als „n“ dargestellt wird.

Ignorieren von Dateien

Um bestimmte Dateien aus einer Auflistung auszulassen, verwenden Sie die Option –hide. 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 Option -l (lange Auflistung) bewirkt, dass ls detaillierte Informationen zu jeder Datei bereitstellt.

ls -l

Es gibt viele Informationen hier, also lassen Sie uns sie durchgehen.

Das erste, was ls anzeigt, ist die Gesamtgröße aller Dateien in der Liste. 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 Berechtigung erteilt wird, ist ein r, w oder x vorhanden. Wird die Berechtigung nicht erteilt, wird ein Bindestrich – angezeigt.

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 ist für andere.

Manchmal wird die Ausführungserlaubnis für den Eigentümer durch ein s dargestellt. Dies ist das setuid bisschen. 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.

  So starten oder beenden Sie Linux über die Befehlszeile

Die Ausführungsberechtigung für die Gruppe kann auch ein s sein. Dies ist das setgid bisschen. Wenn dies auf eine Datei angewendet wird, bedeutet dies, dass die Datei mit den Rechten der Eigentümergruppe ausgeführt wird. Bei Verwendung mit einem Verzeichnis erhalten alle darin erstellten Dateien ihre Gruppenberechtigungen aus dem Verzeichnis, in dem sie erstellt werden, nicht von dem Benutzer, der die Datei erstellt.

Die Ausführungserlaubnis für die anderen kann manchmal durch ein t dargestellt werden. 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 Option -d (Verzeichnis). Dies veranlasst ls, über die Details des Verzeichnisses zu berichten. Ohne diese Option meldet ls 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 Option -h (für Menschen lesbar):

ls -l -h

Versteckte Dateien anzeigen

Um versteckte Dateien anzuzeigen, verwenden Sie die Option -a (all):

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 Inserat mit dem „.“ und „..“-Einträge, aber Sie möchten versteckte Dateien sehen, verwenden Sie die Option -A (fast alle):

ls -l -A

Die versteckte Datei wird immer noch aufgelistet, aber das „.“ und „..“ Einträge werden unterdrückt.

Verzeichnisse rekursiv auflisten

Damit ls die Dateien in allen Unterverzeichnissen auflistet, verwenden Sie die Option -R (rekursiv)

ls -l -R

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

  Die 4 besten inoffiziellen Microsoft OneDrive-Apps für Linux

Anzeige der UID und GID

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

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 Option -X (nach Erweiterung sortieren).

ls -X -1

Die Verzeichnisse werden zuerst aufgelistet (keine Erweiterungen), dann folgen die restlichen in alphabetischer Reihenfolge nach den Erweiterungen.

Um nach Dateigröße zu sortieren, verwenden Sie die Option -S (nach Dateigröße sortieren).

ls -l -h -S

Die Sortierreihenfolge ist vom größten zum kleinsten.

Um die Auflistung nach Änderungszeit zu sortieren, verwenden Sie die Option -t (nach Änderungszeit sortieren).

ls -l -t

Die Auflistung ist nach der Änderungszeit 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, besteht darin, ls mit den Befehlen head und tail zu verwenden.

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 Option -r (umgekehrt).

ls -l -h -S -r

Die Auflistung ist nun von der kleinsten Datei zur größten Datei geordnet.

Und es gibt noch mehr

Sehen Sie sich die Manpage für ls an, es gibt noch viel mehr 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 dieser Optionen an jeden Listeneintrag an:

/: Ein Verzeichnis.
@: Ein Symlink.
|: Eine benannte Pipe.
=: Eine Steckdose.
*: Eine ausführbare Datei

ls -F

Graben Sie etwas. Sie werden feststellen, dass ls eine reiche Ader ist, und Sie werden immer wieder Edelsteine ​​​​zu entdecken.