Viele Dateien löschen

Wenn ich unter Linux auf der Kommandozeile mehrere tausend Dateien mit ‘rm ~/texte/*.txt’ löschen möchte, bekomme ich die Fehlermeldung ‘bash: /bin/rm: Argument list too long’. Was kann man da tun?

vorlesen Druckansicht
Lesezeit: 1 Min.

Wenn ich unter Linux auf der Kommandozeile mehrere tausend Dateien mit ‘rm ~/texte/*.txt’ löschen möchte, bekomme ich die Fehlermeldung ‘bash: /bin/rm: Argument list too long’. Was kann man da tun?

Unter Linux expandiert die Shell (ĂŒblicherweise die bash) Wildcards wie ‘*’ bei der Angabe von Dateinamen. Dabei gibt es eine maximale Menge von Speicher, die die im Betriebssystem festgelegte Liste der aufgelösten Dateinamen belegen darf. Unter Linux betrĂ€gt dieser Wert typischerweise 128 KByte (er lĂ€sst sich mit ‘getconf ARG_MAX’ in Erfahrung bringen). Da bereits die Shell an diesem Betriebssystem-Limit scheitert, sind alle Programme gleichermaßen betroffen, die man aus der Shell mit Wildcards startet. Abhilfe bietet der ‘find’-Befehl, der Wildcards selbst auflöst. Ein

find ~/texte -name "*.txt" -exec rm {} \;

sollte alle *.txt-Dateien im Verzeichnis ~/texte löschen. (odi) (odi)