Auf Linux-Systemen gibt es viele Möglichkeiten, Dateien aufzulisten und Informationen darüber anzuzeigen. In diesem Beitrag werden eine Reihe von Befehlen beschrieben, die Details zu Dateien enthalten, und Optionen zum Anpassen Ihrer Dateilisten an Ihre Anforderungen.
Die meisten Befehle listen Dateien in einzelnen Verzeichnissen auf, während andere so tief in ein Dateisystem hineinreichen, wie Sie es sich wünschen.
Der primäre Befehl zum Auflisten von Dateien ist natürlich ls. Dieser Befehl bietet jedoch eine Vielzahl von Optionen zum Suchen und Auflisten nur der Dateien, die Sie anzeigen möchten. Außerdem gibt es immer Hilfe bei der Suche nach ganz bestimmten Dateien.
Dateien nach Namen auflisten
Der einfachste Weg, Dateien nach Namen aufzulisten, besteht darin, sie einfach mit dem Befehl ls aufzulisten. Das Auflisten von Dateien nach Namen (alphanumerische Reihenfolge) ist schließlich die Standardeinstellung. Sie können ls (keine Details) oder ls -l (viele Details) auswählen, um Ihre Ansicht zu bestimmen.
$ ls | head -68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ ls -l | head -6-rw-rw-r-- 1 shs shs 10886 Mar 22 2019 8pgs.pdf-rw-rw-r-- 1 shs shs 284003 May 11 2019 Aesthetics_Thank_You.pdf-rw-rw-r-- 1 shs shs 38282 Jan 24 2019 alien.pdf-rw-rw-r-- 1 shs shs 97358 May 19 2019 Annual_Meeting_20190602.pdf-rw-rw-r-- 1 shs shs 18115234 Apr 16 17:36 bigfile.bz2drwxrwxr-x 4 shs shs 8052736 Jul 10 13:17 bin
Leiten Sie die Ausgabe von ls an den more-Befehl weiter, wenn Sie Ihren Eintrag einzeln überprüfen möchten.
Dateien in umgekehrter Reihenfolge auflisten
Um die Auflistung von Dateien nach Namen umzukehren, fügen Sie die Option -r (reverse) hinzu. Dies ist, als würde man die normale Liste auf den Kopf stellen.
$ ls -r$ ls -lr
Dateien nach Dateierweiterung auflisten
Der Befehl ls analysiert Dateitypen nicht nach Inhalt, sondern arbeitet mit Dateinamen. Es gibt jedoch eine Befehlsoption, die Dateien nach Erweiterung auflisten kann. Wenn Sie die Option -X hinzufügen, sortiert ls Dateien nach Namen innerhalb jeder Erweiterungskategorie. Zum Beispiel werden zuerst Dateien ohne Erweiterungen (in alphanumerischer Reihenfolge) aufgelistet, gefolgt von Dateien mit Erweiterungen wie .1, .bz2, .c und so weiter.
Nur Verzeichnisse auflisten
Standardmäßig zeigt der Befehl ls sowohl Dateien als auch Verzeichnisse an. Wenn Sie nur Verzeichnisse auflisten möchten, können Sie die Option -d verwenden. Sie erhalten eine Liste wie diese:
$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/
Dateien nach Größe auflisten
Wenn Sie Dateien in der Größenreihenfolge auflisten möchten, fügen Sie die Option -S hinzu. Beachten Sie jedoch, dass dadurch die Größen (zusammen mit anderen Dateidetails) nur angezeigt werden, wenn Sie auch die Option -l (long listing) hinzufügen. Wenn Sie Dateien nach Größe auflisten, ist es im Allgemeinen hilfreich zu sehen, dass der Befehl das tut, was Sie gefragt haben. Beachten Sie, dass standardmäßig die größten Dateien zuerst angezeigt werden. Fügen Sie die Option -r hinzu, um dies umzukehren (z. B. ls -lSr).
$ ls -lStotal 959492-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb
Dateien nach Eigentümer auflisten
Wenn Sie Dateien nach Eigentümer auflisten möchten (z., in einem freigegebenen Verzeichnis), können Sie die Ausgabe des Befehls ls übergeben, um die Spalte owner zu sortieren und auszuwählen, indem Sie -k3 hinzufügen, um im dritten Feld zu sortieren.
$ ls -l | sort -k3 | moretotal 56-rw-rw-r-- 1 dory shs 0 Aug 23 12:27 tasklistdrwx------ 2 gdm gdm 4096 Aug 21 17:12 tracker-extract-files.121srwxr-xr-x 1 root root 0 Aug 21 17:12 ntf_listenerc0c6b8b4567drwxr-xr-x 2 root root 4096 Aug 21 17:12 hsperfdata_root
^
|
Tatsächlich können Sie auf diese Weise nach jedem Feld sortieren (z. B. Jahr). Achten Sie nur darauf, ein „n“ – – k5n – hinzuzufügen, wenn Sie nach einem numerischen Feld sortieren oder in alphanumerischer Reihenfolge sortieren. Diese Sortiertechnik ist auch nützlich, um Dateiinhalte zu sortieren und nicht nur Dateien aufzulisten.
Dateien nach Alter auflisten
Verwenden Sie die Option -t, um Dateien in der Reihenfolge ihres Alters aufzulisten – wie neu sie sind. Fügen Sie die Option -r hinzu, um die zuletzt aktualisierten Dateien zuletzt in der Liste anzuzeigen. Ich benutze diesen Alias, um mir eine Liste der Dateien anzuzeigen, die ich zuletzt aktualisiert habe:
$ alias recent='ls -ltr | tail -8'
Beachten Sie, dass die Dateiänderungs- und Änderungszeiten unterschiedlich sind. Die Optionen -c (change) und -t (modification) liefern nicht immer die gleichen Ergebnisse. Wenn Sie die Berechtigungen für eine Datei ändern und sonst nichts, setzt -c diese Dateien an die Spitze der ls-Ausgabe, während -t dies nicht tut. Wenn Sie neugierig auf den Unterschied sind, schauen Sie sich die Ausgabe des Befehls stat an.
$ stat ckacct File: ckacct Size: 200 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 829041 Links: 1Access: (0750/-rwxr-x---) Uid: ( 1000/ shs) Gid: ( 1000/ shs)Access: 2020-08-20 16:10:11.063015008 -0400Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changesChange: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes Birth: -
Dateien nach Gruppe auflisten
Um Dateien nach den zugehörigen Gruppen zu sortieren, können Sie die Ausgabe einer langen Liste an den Befehl sort übergeben und ihn anweisen, in Spalte 4 zu sortieren.
$ ls -l | sort -k4
Dateien nach Zugriffsdatum auflisten
Um Dateien nach Zugriffsdatum aufzulisten (zuletzt zuerst zugegriffen), verwenden Sie die Optionen -ltu. Das „u“ erzwingt die Auflistungsreihenfolge „Nach Zugriffsdatum“.
$ ls -ltutotal 959500-rwxr-x--- 1 shs shs 200 Aug 24 09:42 ckacct <== most recently used-rw-rw-r-- 1 shs shs 1335 Aug 23 17:45 lte
Mehrere Dateien in einer Zeile auflisten
Manchmal ist eine komprimierte Dateiliste für die jeweilige Aufgabe besser geeignet. Der Befehl ls hat sogar Optionen dafür. Um Dateien in möglichst wenigen Zeilen aufzulisten, können Sie –format=comma verwenden, um Dateinamen wie in diesem Befehl durch Kommas zu trennen:
$ ls --format=comma1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,'2019_HOHO_application working.pdf' …
Leerzeichen bevorzugen? Verwenden Sie stattdessen –format=across .
$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg
Hinzufügen von Tiefe zu Ihren Suchen
Während ls im Allgemeinen Dateien in einem einzigen Verzeichnis auflistet, können Sie stattdessen Dateien rekursiv mit den Optionen -R auflisten und in die gesamte Tiefe von Verzeichnissen eintauchen:
$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping
Alternativ können Sie einen find-Befehl mit einer begrenzten oder unbegrenzten Tiefenangabe verwenden. In diesem Befehl weisen wir den Befehl find an, nur in drei Ebenen von Verzeichnissen zu suchen:
$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz
ls vs find
Wenn Sie Dateien auflisten müssen, die eine sehr selektive Liste von Anforderungen erfüllen, ist der Befehl find wahrscheinlich ein besseres Werkzeug als ls .
Im Gegensatz zu ls sieht der Befehl find so tief wie möglich aus, es sei denn, Sie beschränken ihn. Es hat auch viele andere Optionen und einen Befehl -exec, mit dem Sie bestimmte Aktionen ausführen können, sobald Sie die gesuchten Dateien gefunden haben.
Wrap-Up
Der Befehl ls bietet viele Optionen zum Auflisten von Dateien. Schau sie dir an. Vielleicht finden Sie einige, die Sie lieben werden.