Am Freitag, 9. Juli 2004 00:08 schrieb Andreas Schmidt: > On 2004.07.08 23:25, Patrick Cornelißen wrote: > > Leider gibt es Probleme mit Leerzeichen in den Verz. Namen. Wie > > kann ich > > das denn hier umgehen? Bei "For" bin ich da etwas ratlos... > > Ganz einfach: ohne for! ;-) > > #find ./ -type d -exec do-something.sh {} \;
Da steckt eine kleine Falle drin: Was ist, wenn das Verzeichnis Unterverzeichnisse enthält? Besser: find ./ -type d -depth -exec do-something.sh {} \; Damit werden die Unterverzeichnisse _vor_ den übergeordneten behandelt. Sonst kann es Dir passieren, dass Du in /verzeichnis1 erst 2 Dateien hast, diese verschiebst, dann /verzeichnis1/verzeichnis2 dran kommt und dann plötzlich wieder in /verzeichnis1 2 Dateien stehen, die aus verzeichnis2 kommen. > #find ./ -type d -empty -print0 |xargs -0 rmdir > > und dann in do-something.sh: > > ----------------------- > > #!/bin/bash > > ~ COUNT=`find "$1" -type f -maxdepth 1| wc -l` > > > > ~ if [ $COUNT -gt 0 ]; then huch? wc -l liefert _immer_ mindestens 0. > > if [ $COUNT -lt 3 ]; then > > > > for j in `find "$1" -type f -maxdepth 1`; do > > echo mv \"$j\" .. > > done > > fi > > ~ fi > > ----------------------- Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org TTS-HowTo: https://ssl.pingos.org/pingos/intern/ttshowto/rt.html