[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: