Dies ist eine Kombination aus der Antwort von ceving und anubhava.
Beide Lösungen funktionieren nicht für mich. Da ich nach einem Skript suchte, das jeden Tag laufen sollte, um Dateien in einem Archiv zu sichern, wollte ich Probleme mit ls
vermeiden (jemand könnte eine lustige Namensdatei in meinem Sicherungsordner gespeichert haben). Also habe ich die genannten Lösungen an meine Bedürfnisse angepasst.
Cevings Lösung löscht die drei neuesten Dateien - nicht das, was ich brauchte und gefragt wurde.
Meine Lösung löscht alle Dateien, außer die drei neuesten Dateien.
%Vor%
Einige Erklärung:
find
listet alle Dateien (keine Verzeichnisse) im aktuellen Ordner auf. Sie werden mit Zeitstempeln ausgedruckt.
sort
sortiert die Zeilen anhand des Zeitstempels (älteste oben).
head
druckt die obersten Zeilen bis zu den letzten 5 Zeilen aus.
cut
Entfernt die Zeitstempel.
xargs
Läuft rm
für jede ausgewählte Datei.
Damit Sie meine Lösung überprüfen können:
%Vor%
Dies erstellt 5 Dateien mit unterschiedlichen Zeitstempeln im aktuellen Ordner. Führt dies zuerst und den Code zum Löschen, um den Code zu testen.