Was genau geschieht hier?
- Der ls-Befehl listet die Dateien eines Verzeichnisses auf.
Mit der ‚-t‘-Option versehen, werden die Dateien nach Änderungsdatum sortiert. Dabei stehen die ältesten Dateien ganz unten in der Liste.
Wir nutzen für die Datenquelle das Suchmuster ‚*.bak‘. Dabei handelt es sich um eine gebräuchliche Datei-Endung für Backup-Dateien. Ferner dient dies zum Schutz, damit Sie beim Aufruf nicht aus Versehen wichtige Dateien löschen.
Per Pipe leiten wir die Dateiliste an den Linux-Tail-Befehl weiter.
- Mit dem Linux-Tail-Befehl ohne Angabe von Optionen lesen wir die letzten zehn Dateien aus der Liste aus. Bei den ausgegebenen Dateinamen handelt es sich um die ältesten Dateien im Verzeichnis.
- Der xargs-Befehl nimmt eine Liste von Dateien und den Namen eines Befehls entgegen. Der Befehl wird ausgeführt, wobei die Dateien als Argumente übergeben werden.
In unserem Beispiel gibt der Linux-Tail-Befehl einen Text mit mehreren Zeilen zurück. Jede Zeile enthält den Namen einer zu löschen Datei. Per ‚xargs‘ werden die Dateinamen aus den Zeilen gelöst und als Argumente dem rm-Befehl übergeben.
- Zum Löschen von Dateien unter Linux greifen wir auf den rm-Befehl zurück. Dieser löscht die als Argumente übergebenen Dateien.
Beachten Sie, dass die Dateien nicht in den Papierkorb verschoben, sondern sofort gelöscht werden.
Beim Löschen von Dateien auf der Linux-Kommandozeile ist Vorsicht geboten. Damit Sie unser Beispiel ohne Sorge ausprobieren können, sollten Sie zunächst ein Verzeichnis mit Test-Dateien anlegen. Führen Sie dafür den folgenden Code auf der Kommandozeile aus:
Â