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

Antwort per Email an