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

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

Die zentralen Thesen

  • Der Befehl ls ist ein leistungsstarkes Tool, mit dem Dateien und Verzeichnisse aufgelistet werden können.
  • Es gibt viele nützliche Optionen und Parameter für ls, die seine Funktionalität verbessern und die Verwendung komfortabler machen können.
  • ls -la ist ein guter Befehl, wenn Sie alles in einem Ordner sehen möchten.

Wir verwenden den Linux- lsBefehl jeden Tag, ohne darüber nachzudenken. Das ist schade. Wenn Sie ihm etwas Aufmerksamkeit schenken, werden Sie viele nützliche Optionen finden – darunter auch einige, die Sie zu Ihrem Befehlszeilen-Arsenal hinzufügen sollten.

ls listet Dateien und Verzeichnisse auf

Der lsBefehl ist wahrscheinlich der erste Befehl, auf den die meisten Linux-Benutzer stoßen. Diejenigen von uns, die an der Befehlszeile herumhängen, nutzen sie Tag für Tag, ohne überhaupt darüber nachzudenken. Das könnte erklären, warum hinter diesem Befehl mehr steckt, als den meisten Benutzern bewusst ist. Wir listen damit Dateien auf, um zu sehen, was sich in einem Verzeichnis befindet. Wir listen Dateien im Langformat auf, wenn wir uns die Berechtigungen für eine Datei ansehen möchten. Darüber hinaus findet es kaum Beachtung.

Der lsBefehl ist einer dieser Befehle mit einer Fülle von Optionen. Vielleicht ist das ein Teil des Problems. Es gibt so viele Optionen. Wie durchforstet man sie, um die nützlichen zu finden? Und wie erinnern Sie sich an sie, nachdem Sie sie gefunden haben?

Nützliche Permutationen des lsBefehls mit ihren Options- und Parameterketten sind die perfekten Kandidaten für Aliase . Tatsächlich ist das, was Sie als „nackten“ Befehl bezeichnen, in den meisten Distributionen lstatsächlich ein Alias. Unter anderem der Typ lstype command can be used to show the underlying definition of aliases. Let's look at the definition of ls:

Geben Sie ls in ein Terminalfenster ein

Die --color=auto Parameter werden bei jeder Verwendung des lsBefehls automatisch eingebunden. Dadurch werden die verschiedenen Farben für die verschiedenen Dateitypen in den Auflistungen bereitgestellt.

Einfache ls-Auflistungen

Jeder, der schon einmal das Linux-Terminal verwendet hat, weiß, dass standardmäßig lsdie Dateien und Verzeichnisse im aktuellen Verzeichnis aufgelistet werden.

ls

ls in einem Terminalfenster

Wenn Ihr Eintrag in einer einzigen Spalte erstellt werden soll, verwenden Sie die -1Option (eine Datei pro Zeile):

ls -1

ls -1 in einem Terminalfenster

Wir werden gleich auf den seltsam aussehenden Dateinamen oben in der Liste eingehen.

Verwenden von ls in verschiedenen Verzeichnissen

Um lsdie Dateien in einem anderen Verzeichnis als dem aktuellen Verzeichnis aufzulisten, übergeben Sie den Pfad zum Verzeichnis in lsder Befehlszeile. Sie können auch mehr als ein Verzeichnis an übergeben lsund diese nacheinander auflisten lassen. Hier bitten wir darum, lsdie Dateien in zwei Verzeichnissen aufzulisten, eines mit dem Namen „Help“ und das andere mit dem Namen „gc_help“.

ls Help gc_help

ls Help gc_help in einem Terminalfenster

Wenn lsder Inhalt des ersten Verzeichnisses aufgelistet ist, wird der Inhalt des zweiten Verzeichnisses aufgelistet. Es gibt den Namen jedes Verzeichnisses aus, während es diese verarbeitet:

Name des Verzeichnisses, das von ls angezeigt wird, bevor der Inhalt aufgelistet wird.

Verwenden von Dateimustern

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

ls ip_*

ls ip_* in einem Terminalfenster

Um Dateien mit der Erweiterung „.c“ aufzulisten, verwenden Sie dieses Format:

ls *.c

ls *.c in einem Terminalfenster

Sie können auch lsmit grepund grepdie Mustervergleichsfunktionen von verwenden . Suchen wir nach Dateien, deren Name die Zeichenfolge „_pin_“ enthält:

ls | grep _pin_

ls |  grep _pin_ in einem Terminalfenster

Dies ist fast dasselbe wie die lsalleinige Verwendung mit zwei Platzhaltern:

ls | grep _pin_ ls *_pin_*

ls |  grep _pin_ in einem Terminalfenster

Warum fast das Gleiche? Beachten Sie die unterschiedlichen Layouts. greperzwingt die Ausgabe auf ein einzelnes Dateinamen-pro-Zeilen-Format.

Nicht druckbare Zeichen

Es ist möglich, dass Sie einen Dateinamen haben, der ein nicht druckbares Zeichen oder ein Steuerzeichen im Dateinamen enthält. 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, ihn aber nicht bemerkt hat.

Unsere seltsame Datei ist eine davon:

Dateiname mit darin enthaltenem Steuerzeichen in einem Terminalfenster

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

Dateiname mit einem Steuerzeichen im Umbenennungsdialogfenster

Mit der -bOption (Escape) können Sie sehen, was der Dateiname tatsächlich enthält. Diese Option bewirkt ls, dass die Escape-Sequenzen der Programmiersprache C zur Darstellung der Steuerzeichen verwendet werden.

ls -b a*

ls -ba* in einem Terminalfenster

Es stellt sich heraus, dass es sich bei dem mysteriösen Zeichen um ein Zeilenumbruchzeichen handelt, das in C als „\n“ dargestellt wird.

Dateien ignorieren

Um bestimmte Dateien aus einer Liste auszuschließen, verwenden Sie die --hideOption. Angenommen, Sie möchten die Sicherungsdateien „.bak“ nicht in der Liste sehen. Sie könnten diesen Befehl verwenden:

ls ls --hide=*.bak

ls --hide=*.bak in einem Terminalfenster

Die „.bak“-Dateien sind in der zweiten Auflistung nicht enthalten.

Die Auflistung im Langformat

Die -lOption (lange Auflistung) bewirkt, lsdass detaillierte Informationen zu jeder Datei bereitgestellt werden.

ls -l

ls -l in einem Terminalfenster

Es gibt hier viele Informationen, also gehen wir sie durch.

Als Erstes lswird die Gesamtgröße aller Dateien in der Liste angezeigt. Dann wird jede Datei oder jedes Verzeichnis einzeln in einer Zeile angezeigt.

Der erste Satz aus zehn Buchstaben und Bindestrichen gibt den Dateityp sowie den Eigentümer, die Gruppe und andere Dateiberechtigungen an.

Das allererste Zeichen repräsentiert den Dateityp. Es wird eines von:

  • : Eine reguläre Datei.
  • b : Eine Block-Spezialdatei.
  • c : Eine spezielle Zeichendatei.
  • d : Ein Verzeichnis.
  • l : Ein symbolischer Link.
  • n : Eine Netzwerkdatei.
  • p : Eine benannte Pipe.
  • s : Ein Sockel.

Die nächsten neun Zeichen sind drei Gruppen von drei Zeichen, die zusammenhängend angezeigt werden. Jede Dreiergruppe stellt die Lese-, Schreib- und Ausführungsberechtigungen in dieser Reihenfolge dar. Wenn die Erlaubnis erteilt wird, wird ein r, woder xvorhanden sein. Wenn die Berechtigung nicht erteilt wird, -wird ein Bindestrich angezeigt.

Der erste Satz aus drei Zeichen sind die Berechtigungen für den Dateieigentümer. Der zweite Satz von drei Berechtigungen gilt für Gruppenmitglieder und der letzte Satz von drei Berechtigungen gilt für andere.

Manchmal wird die Ausführungserlaubnis für den Eigentümer durch ein dargestellt s. Dies ist das Setuid- Bit. Wenn es vorhanden ist, bedeutet dies, dass die Datei mit den Berechtigungen des Dateieigentümers ausgeführt wird, nicht des Benutzers, der die Datei ausführt.

Die Ausführungsberechtigung für die Gruppe kann auch eine sein s. Dies ist das Setgid- Bit. Wenn dies auf eine Datei angewendet wird, bedeutet dies, dass die Datei mit den Berechtigungen der Gruppe des Eigentümers ausgeführt wird. Bei Verwendung mit einem Verzeichnis erhalten alle darin erstellten Dateien ihre Gruppenberechtigungen von dem Verzeichnis, in dem sie erstellt werden, und nicht von dem Benutzer, der die Datei erstellt.

Die Ausführungserlaubnis für die anderen kann manchmal durch ein dargestellt werden t. Das ist der klebrige Teil . 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 Dateieigentümer, der Verzeichniseigentümer oder der Root-Benutzer Dateien im Verzeichnis umbenennen oder löschen.

Das Sticky-Bit wird häufig für Ordner wie „/tmp“ verwendet. Dies ist für alle Benutzer 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 -dOption (Verzeichnis). Dies führt dazu ls, dass über die Details des Verzeichnisses berichtet wird. Ohne diese Option lswird ein Bericht über die Dateien im Verzeichnis erstellt.

ls -l -d /tmp

ls -l -d /tmp in einem Terminalfenster

Die Zahl hinter den Berechtigungen gibt die Anzahl der Hardlinks zur Datei oder zum Verzeichnis an. Bei einer Datei ist dies normalerweise eins, aber wenn andere Hardlinks erstellt werden, erhöht sich diese Zahl. Ein Verzeichnis verfügt normalerweise über mindestens zwei feste Links. Das eine ist ein Link zu sich selbst und das andere ist der Eintrag im übergeordneten Verzeichnis.

Als nächstes werden der Name des Eigentümers und der Gruppe angezeigt. Danach folgen die Dateigröße und das Datum der letzten Änderung der Datei. Abschließend wird der Dateiname angegeben.

Vom Menschen lesbare Dateigrößen

Die Angabe der Dateigröße in Bytes ist nicht immer praktisch. Um die Dateigrößen in den am besten geeigneten Einheiten (Kilobyte, Megabyte usw.) anzuzeigen, verwenden Sie die -hOption (für Menschen lesbar):

ls -l -h

ls -l -h in einem Terminalfenster

Versteckte Dateien anzeigen

Um versteckte Dateien anzuzeigen, verwenden Sie die -aOption (alle):

ls -l -a

ls -l -a in einem Terminalfenster

Die beiden Einträge „.“ und „..“ repräsentieren das aktuelle Verzeichnis bzw. das übergeordnete Verzeichnis. Eine Datei namens „.base_settings“ ist nun erstmals sichtbar.

Weglassen. Und. . aus den Einträgen

Wenn Sie nicht möchten, dass Ihr Eintrag mit den Einträgen „.“ und „..“ vollgestopft wird, Sie aber versteckte Dateien sehen möchten, verwenden Sie die -AOption (fast alle):

ls -l -A

ls -l -A in einem Terminalfenster

Die versteckte Datei wird weiterhin aufgeführt, die Einträge „.“ und „..“ werden jedoch unterdrückt.

Verzeichnisse rekursiv auflisten

Um lsdie Dateien in allen Unterverzeichnissen aufzulisten, verwenden Sie die -ROption (rekursiv).

ls -l -R

ls -l -R in einem Terminalfenster

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

Ausgabe von ls, die Verzeichnisse rekursiv auflistet

Anzeige der UID und GID

Um die Benutzer-ID und Gruppen-ID anstelle des Benutzernamens und Gruppennamens anzuzeigen, verwenden Sie die -nOption (numerische UID und GID).

ls -n

ls -n in einem Terminalfenster

Sortieren der Einträge

Sie können die Liste nach Erweiterung, Dateigröße oder Änderungszeit sortieren. Diese Optionen müssen beim langen Listenformat nicht unbedingt verwendet werden, es ist jedoch in der Regel sinnvoll, dies zu tun. Wenn Sie nach Dateigröße sortieren, ist es sinnvoll, die Dateigrößen in der Liste anzuzeigen. Wenn Sie nach Erweiterungstyp sortieren, ist das lange Listenformat nicht so wichtig.

Um nach Erweiterung zu sortieren, verwenden Sie die -XOption (nach Erweiterung sortieren).

ls -X -1

ls -X -1 in einem Terminalfenster

Die Verzeichnisse werden zuerst aufgelistet (überhaupt keine Erweiterungen), dann folgt der Rest in alphabetischer Reihenfolge entsprechend den Erweiterungen.

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

ls -l -h -S

ls -l -h -S in einem Terminalfenster

Die Sortierreihenfolge ist vom größten zum kleinsten.

Um die Liste nach Änderungszeit zu sortieren, verwenden Sie die -tOption (nach Änderungszeit sortieren).

ls -l -t

ls -l -t in einem Terminalfenster

Die Auflistung ist nach Änderungszeit sortiert.

Wenn der Zeitpunkt der Dateiänderung innerhalb des aktuellen Jahres liegt, werden als Informationen Monat, Tag und Uhrzeit angezeigt. Wenn das Änderungsdatum nicht im aktuellen Jahr lag, werden der Monat, der Tag und das Jahr angezeigt.

Eine schnelle Möglichkeit, die neuesten und ältesten Dateien in einem Verzeichnis abzurufen, ist die Verwendung lsder Befehle headund tail.

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

ls -t |  head -1 in einem Terminalfenster

Um die Sortierreihenfolge umzukehren

Um eine der Sortierreihenfolgen umzukehren, verwenden Sie die -rOption (umkehren).

ls -l -h -S -r

ls -l -h -S -r in einem Terminalfenster

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

Und es gibt noch mehr

Schauen Sie sich die Manpage an ls, es gibt viele weitere Optionen . Einige von ihnen erfüllen etwas unklare Anwendungsfälle, aber hin und wieder werden Sie froh sein, davon zu wissen.

Müssen Sie die Zeitstempel der Dateien mit der größtmöglichen Präzision 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 mit Verzeichnissen und Links beseitigen? Verwenden Sie die Option „Klassifizieren“ und lsfügen Sie jedem Listeneintrag eine davon hinzu:

  • / : Ein Verzeichnis.
  • @ : Ein Symlink.
  • | : Eine Named Pipe.
  • = : Ein Sockel.
  • * : Eine ausführbare Datei

ls -F

Graben Sie ein bisschen. Sie werden feststellen, dass es sich um lseine reiche Ader handelt, und Sie werden immer wieder Edelsteine ​​finden.

Linux-Befehle

Dateien

tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · Join · jq · Fold · Uniq · Journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm · scp · gzip · chattr · schneiden · finden · umask · wc · tr

Prozesse

alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · geschichte · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · Timeout · Wall · Yes · Kill · Sleep · Sudo · Su · Time · Groupadd · Usermod · Groups · LSHW · Shutdown · Reboot · Halt · Poweroff · Passwd · LSCPU · Crontab · Date · BG · FG · PIDOF · Nohup · PMAP

Vernetzung

netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert