Neulich hat mich ein anderer Linux-Benutzer gefragt, wie man die älteste Datei in einem Verzeichnis über die Befehlszeile in Linux findet. Wir könnten die älteste Datei in einem Verzeichnis feststellen, indem wir die Datums- und Zeitstempel im GUI-Modus verwenden. Aber ich weiß nicht, wie ich es von der Befehlszeile aus finden kann. Glücklicherweise habe ich diese Lösung gefunden nach einigem googlen. Wenn Sie sich jemals gefragt haben, wie Sie die älteste Datei in einem Verzeichnis oder im gesamten Dateisystem finden, lesen Sie weiter. Es ist nicht so schwierig.
Die älteste Datei in einem Verzeichnisbaum unter Linux finden
Um die älteste Datei in einem Verzeichnis zu finden, zum Beispiel /home/sk/ostechnix/ , ausführen:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 1
Lassen Sie uns diesen Befehl aufschlüsseln und sehen, was jedes Befehlszeilenargument tut.
Hier,
- finden - Suche nach Dateien in einer Verzeichnishierarchie.
- /home/sk/ostechnix/ - Ort suchen.
- geben Sie -f ein - Durchsucht nur die regulären Dateien.
- -printf '%T+ %p\n' – Druckt Datum und Uhrzeit der letzten Änderung der Datei getrennt durch + Symbol. (zB 2015-07-22+13:42:40.0000000000). Hier %p gibt den Dateinamen an. \n zeigt neue Zeile an.
- sortieren | Kopf -n 1 - Die Sortierung Der Befehl sortiert die Ausgabe und sendet die Ausgabe an head Befehl, um die älteste Datei anzuzeigen. Hier -n 1 gibt nur eine Datei an, d. h. die älteste Datei.
Wie Sie vielleicht schon wissen, Explainshell hilft Ihnen herauszufinden, was jeder Teil eines Linux-Befehls tut.
Der obige Befehl hat die folgende Ausgabe zurückgegeben:
2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf
Wie Sie in der obigen Ausgabe sehen, Absolute FreeBSD_ 2nd Edition.pdf ist die älteste Datei in /home/sk/ostechnix/ Verzeichnis.
Bitte beachten Sie, dass Linux die älteste Datei nicht anhand des Erstellungsdatums der Datei findet. Stattdessen wird das Änderungsdatum der Datei verwendet zu finden.
Herunterladen - Kostenloser Spickzettel:"Linux-Befehlszeilen-Spickzettel"Um die fünf ältesten Dateien in einem bestimmten Verzeichnis zu finden, führen Sie einfach Folgendes aus:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 5
Beispielausgabe:
2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf 2016-11-28+21:03:05.0000000000 /home/sk/ostechnix/Etcher-linux-x64.AppImage 2016-12-14+18:28:20.5162190000 /home/sk/ostechnix/ubuntu.jpg 2016-12-18+18:14:46.5931480000 /home/sk/ostechnix/Marconi Union - Sleepless.mp3 2017-03-17+19:28:27.8193330000 /home/sk/ostechnix/The Devops toolkit.pdf
Die älteste Datei wird zuerst angezeigt.
Führen Sie Folgendes aus, um die älteste Datei im gesamten Root-Dateisystem (/) zu finden:
$ sudo find / -type f -printf '%T+ %p\n' | sort | head -n 1
Aktualisierung:
Ein anderer Linux-Benutzer hat im Kommentarbereich unten darauf hingewiesen, wie man die ältesten oder neuesten Dateien in einem Verzeichnis findet. Es ist viel einfacher als meine Methode.
Um die älteste Datei in einem Verzeichnis herauszufinden, gehen Sie in dieses Verzeichnis und führen Sie Folgendes aus:
$ ls -lt | tail -1
Um die neueste Datei in einem Verzeichnis herauszufinden:
$ ls -ltr | tail -1
Ich hoffe, das war hilfreich.