On Wed, 28 Mar 2007, Denny Schierz wrote:

hi,

Martin Dommermuth schrieb:

for i in `find /ver/zei/chnis/`; do rm -rf $i; done


das scheitert leider an Dateien mit Leerzeichen im Namen.


dann schreibt man die Variable einfach in Anführungszeichen:

for i in `find /ver/zei/chnis/`; do rm -rf "$i"; done

dann sollte es klappen.

Nein, die for Schleife hat als Trenner auch Leerzeichen.

Ich wuerde ein find nehmen, die Suchtiefe einschraenken und entweder jede
Datei einzeln mit -exec loeschen oder in einer pipe an xargs uebergeben, dort dann soviele Prozesse gleichzeitig ausloesen, wie vertretbar ist.

Aber bei Uebergabe an ein anderes Programm immer pruefen, ob/wann Filetrenner wirken, Sonderzeichen escaped werden muessen, und hier wieviele
Parameter ich wie uebergeben darf.

Einfach und unkritisch waere ein:
nice find . -type f -maxdepth 1 -exec rm {} \;
Egal wieviele Dateien geraeumt werden sollen. Einfach nacheinander
abarbeiten kann auch ein Vorteil sein, wenn man mal erlebt hat, wie ein xargs ohne Grenzen auferlegt --max-args bekommen zu haben, ein System in die Knie zwingt.

cu Frank

--
> >In vielen Serverraeumen laeuft das eine oder andere Mitglied der VAX-
> >Familie noch heute vor sich hin und traegt zur recovery des Admin bei.
>
> Es gibt auch durchaus VAXen in Wohnzimmern weiblicher Mitleser.

Wow, ich dachte bisher, sowas gaeb's nur in romantischen Geschichten:
"Moechtest Du noch kurz mit reinkommen, meine VAX anschauen..."

Hm. Jetzt verstehe ich, warum SIE immer sagt: "Mach keine VAXen...!"
-- 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an