GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie listet man die N-te jüngste Datei auf (ohne Ls zu analysieren!)?

Ich weiß also, dass das Parsen von ls schlecht ist!.

Heute habe ich dieses Nugget gefunden:

FILENAME=`ls -t $READ_FOLDER | head -1`

Ich glaube also, dass dies ursprünglich entworfen wurde, um den neuesten Dateinamen zu holen, ich möchte es jetzt eigentlich anpassen, um vielleicht den 5. zu schnappen neueste Datei, da der Prozess, der sie überprüft, etwas langsam ist, und wir können daher nicht sicher sein, ob sie bereits verarbeitet wurden.

Ich arbeite in bash, bin aber auch nicht gegen eine generische sh-Lösung.

Akzeptierte Antwort:

Sie können GNU find verwenden Um die Dateien mit der modifizierten Zeit, ausgedrückt als Epochenzeit, aufzulisten, verwenden Sie dann sort um die Liste zu sortieren, schließlich head und tail um den gewünschten nummerierten Dateinamen zu erhalten:

find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1

Linux
  1. So listen Sie die Abhängigkeiten eines Pakets in Linux auf

  2. Die Bash‘?

  3. Wie kann man eine passwortgeschützte RAR-Datei entsperren, ohne das Passwort zu kennen?

  4. Wie kann ich die Größe jeder Datei und jedes Verzeichnisses auflisten und in Bash nach absteigender Größe sortieren?

  5. Wie leitet man die Ausgabe von system() in eine Datei um?

So verwenden Sie den Linux-Kopfbefehl

So verwenden Sie den Linux-diff-Befehl

So führen Sie den Sudo-Befehl ohne Passwort aus

So listen Sie den Inhalt eines Pakets in Linux auf

So listen Sie die Mitglieder einer Gruppe in Linux auf

So fügen Sie Text am Anfang einer Datei in Linux hinzu