Ich habe ein Protokolldateiverzeichnis mit 82000 Dateien und Verzeichnissen (etwa die Hälfte und die Hälfte).Wie lösche ich alle Dateien, die älter als 3 Tage sind, wenn "Argumentliste zu lang" ist?
Ich muss alle Dateien und Verzeichnisse löschen, die älter als 3 Tage sind.
In einem Verzeichnis, das 37.000 Dateien enthält, konnte ich dies tun mit:
find * -mtime +3 -exec rm {} \;
Aber mit 82.000 Dateien/Verzeichnisse, erhalte ich die Fehlermeldung:
/usr/bin/find: Argument list too long
Wie kann ich diesen Fehler umgehen, sodass ich alle Dateien/Verzeichnisse löschen kann, die älter als 3 Tage sind?
find . -mtime +3 | xargs rm -Rf
Oder alternativ, mehr im Einklang mit dem ursprünglichen Befehl des OP:
Haben Sie 'find -mtime +3-exec rm {} +' versucht? –
Ich glaube, dass 'find * -mtime +3 | xargs rm' das Problem lösen würde. –
Ich denke, das einzige Problem ist 'find *'. 'finden .' ist besser. Die globale Shell erweitert das '*' zu einer riesigen Liste von Dateien und Verzeichnissen. –