Re: Bash Zauberei
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
Reply to: