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

Bash-Skript zum Löschen aller bis auf N Dateien bei alphabetischer Sortierung

Die folgende Zeile sollte den Zweck erfüllen.

ls -F world*.zip | head -n -5 | xargs -r rm
  • ls -F :Dateien alphabetisch auflisten
  • head -n -5 :Alle Zeilen außer den letzten 5 herausfiltern
  • xargs -r rm :jede angegebene Datei entfernen. -r :Führe rm nicht aus wenn die Eingabe leer ist

Ich kann es gerade nicht testen, weil ich keinen Linux-Rechner habe, aber ich denke, es sollte sein:

rm `ls -A | head -5`

Wie wäre es damit:

find /your/directory -name 'world*.zip' -mtime +5 | xargs rm

Testen Sie es vorher. Dies sollte alle world*.zip entfernen Dateien älter als 5 Tage. Also eine andere Logik als du.


Linux
  1. Wann soll in Bash ein Alias, wann ein Skript und wann eine Funktion geschrieben werden?

  2. Wie werden Parameter eingestellt, wenn Bash-Skript an Bash übergeben wird?

  3. Wie man alle Dateien in allen Unterverzeichnissen in Bash gzippt

  4. Wie lösche ich alle Dateien in einem Ordner, aber lösche den Ordner nicht mit NIX-Standardbibliotheken?

  5. Entfernen Sie das Git-Repository, aber behalten Sie alle Dateien

Verwenden Sie dieses hilfreiche Bash-Skript, wenn Sie Sterne beobachten

Conda-Befehl funktioniert in der Eingabeaufforderung, aber nicht im Bash-Skript

Löschen Sie übereinstimmende Dateien in allen Unterverzeichnissen

bash - entfernt alle Verzeichnisse (und Inhalte), aber keine Dateien in pwd

Löschen Sie alle bis auf 1000 zufällige Dateien in einem Verzeichnis

Wie kann ich alle Dateien aus einem Verzeichnis löschen, wenn die Argumentliste zu lang gemeldet wird?