roland wrote:
> Stefan Reuther schrieb:
>>Maximilian Koch wrote:
>>>ich dachte mit "for" arbeite ich alle ergebnisse ab..
>>
>>Tust du auch, allerdings machen die Anführungszeichen um den find-Befehl
>>aus dessen kompletter Ausgabe ein Ergebnis.
>>
>>Lass find den Löschbefehl aufrufen.
>> find -maxdepth 1 -mtime +13 -type d -exec rm -r {} \;
>>Da übergibt find den Namen direkt an rm, ohne dass zwischendurch nochmal
>>versucht wird, das irgendwie in eine Shellvariable zu parsen.
>
> Das klatscht aber vor die Wand, wenn IFS im Verzeichnisname vorkommt.
Tut es nicht, da bei -exec kein Shell-/Parse-Schritt beteiligt ist.
> xargs ist Dein Freund ;)
>
> find ./ -maxdepth 1 -mtime +13 -type d -print0| xargs -0 rm -r
'-print0' und 'xargs -0' sind nicht standardisiert.
Der einzige Vorteil, den diese Schreibweise hat, ist, dass mehrere
Verzeichnisse mit einem rm-Prozess abgeräumt werden. Da das Löschen
eines Verzeichnisses aber eh relativ aufwändig ist, wäre mir das an
der Stelle egal. Und ansonsten gibt es 'find ... -exec rm -r {} +',
was immerhin standardisiert ist (aber bei älteren Toolchains nicht
implementiert ist).
Stefan