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

Alle Dateien in einem Ordner außer den letzten (neuesten) 20 löschen?

Für diese Frage gibt es hier bereits Antworten :Älteste Dateien entfernen

(8 Antworten)
Vor 5 Jahren geschlossen.

Ich möchte alle Dateien aus verschiedenen Verzeichnissen entfernen und nur die neuesten 20 Dateien behalten.
Ist dies der richtige Befehl dafür?

ls -t1 /mnt/dwh/ftp/dwh_ftp_cbs/ARLOGS/ | tail -n +22 | xargs rm -f

Akzeptierte Antwort:

Mit zsh und Glob-Qualifizierer:

print -rl -- *(D.Om[1,-21])

listet alle regulären Dateien außer den letzten (zuletzt geänderten) zwanzig auf.
D wählt versteckte Dateien aus, . wählt nur normale Dateien aus, Om bedeutet umgekehrte Sortierung nach mtime (also älteste zuerst) und [1,-21] wählt vom ersten bis zum einundzwanzigsten aus.
Wenn Sie mit dem Ergebnis zufrieden sind, ersetzen Sie print -rl mit rm :

rm -- *(D.Om[1,-21])

Wenn Sie eine große Anzahl von Dateien haben, müssen Sie möglicherweise zargs verwenden um zu lange Argumentliste zu vermeiden :

autoload zargs
zargs ./*(D.Om[1,-21]) -- rm

Linux
  1. So entfernen Sie alle Dateien in einem Ordner außer einer bestimmten Datei in Linux

  2. Alle Dateien außer in einem bestimmten Unterverzeichnis löschen mit Suchen?

  3. Alle Dateien in einem Ordner drucken?

  4. Alle Zeilenumbrüche außer dem letzten durch Leerzeichen ersetzen?

  5. Alle Dateien außer den Dateien im Array abrufen – Bash?

Alte Protokolldateien außer der letzten löschen (alphanumerisch sortiert)?

Verwenden Sie Suchen, um ein bestimmtes Verzeichnis zu finden und alle darin enthaltenen Dateien außer einem Verzeichnis zu löschen?

So finden Sie alle Sparse-Dateien in Linux

Wie kopiert man die Top 10 der neuesten Dateien von einem Verzeichnis in ein anderes?

Löschen Sie alle Dateien außer den neuesten 3 im Bash-Skript

Wie lösche ich alle Dateien in einem Verzeichnis außer einigen?