RM-Befehl
Linux-Konsole: Löschen mit Dateityp-Filter
Logdateien, temporäre Dateien und nicht mehr benötigte Sicherheitskopien: Oft geht es bei Löschaktionen in einem Verzeichnis darum, alle Dateien bis auf einen bestimmten Dateityp zu löschen. Der übliche Löschbefehl „rm“ hat dafür keine brauchbare Lösung.
Platzhalter sind für das Kommando rm generell ein Problem. Muster mit Platzhaltern wie beispielsweise *.tmp werden stattdessen von der Shell interpretiert. Zwar kann der Befehl
rm *.tmp
deshalb alle Dateien im aktuellen Ordner entfernen, die auf „.tmp“ enden, aber das Muster ist nicht umkehrbar, um bestimmte Dateitypen vom Löschen auszunehmen. Besser ist, das flexible Kommando „find“ für Suchmuster und Löschaktionen einzuspannen. Folgendes Kommando hilft, um mit find alle Dateien bis auf jene mit der Endung „.txt“ zu löschen:
find ./ -type f ! -iname "*.txt" -delete
Das vorangestellte Ausrufezeichen kehrt den nachfolgenden Suchbegriff um, der hier über den Dateinamensteil „*.txt“ angegeben ist.
Die Auswahl mehrerer Dateimasken ist ebenfalls möglich, macht die Syntax aber etwas komplexer: Mit dem Befehl
find ./ -type f ! \( -iname "*.ht ml" -o -iname "*.css" \) -delete
löschen Sie beispielsweise alles im gegenwärtigen Verzeichnis, ausgenommen die Dateien mit den Endungen „.html und „.css“.
(PC-Welt/ad)