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

Re: rinominare ricorsivamente directory



Hi

[...]
> > 1) Aggiungi un ciclo while esterno che riesegue il tuo ciclo
controllando
> > l'uscita
> > di un flag. Dopo aver mosso una directory imposta il flag a true ed esci
dal
> > ciclo interno.
> > Se non hai capito quello che intendo posta il tuo programmino che ti
faccio
> > vedere ;-)
>
>
> visto che lo chiedi cosí gentilmente..... :-)
>
> qui lo script
>
> -------------------------------------
>
> #!/bin/bash
>
> for FILE in `find . -name "*" -print | tr " " "}"`;

cambia la riga sopra in
for FILE in `find . -name "*" -print | sort -r | tr " " "}"`;


> # cerco tutti i file e dir e cambio lo spazio con }
>
> do FILE2=`echo "$FILE" | sed s/\%20/\}/g | tr  "\200" "%" \
>  | sed s/%/:a5/g`;
> # qui sostuisco %20 con }, cambio il carattere \200
> # con %,  infine % con il carattere ":a5", assegnando il tutto
> # alla variabile $FILE2
>
> echo "$FILE" "$FILE2"
> # qui per controllare a video che vada tutto bene.
>
> echo "mv `echo $FILE | tr "}" " " | tr "\200" "?"` \
>  \"`echo "$FILE2" | tr "}" " " | tr "a" "e"`\"" >> MV;
> # nella variabile $FILE riporto a spazio il carattere },
> # cambio \200 con ? (in modo che la shell possa riconoserlo)
> # In $FILE2 riporto a spazio } e copio il tutto in MV
>
> done
>
> chmod 755 MV
> ./MV

oppure al posto della modifica sopra, dato che
scrivi un file, il sort lo puoi anche fare alla fine
cambiando le ultime 4 righe con le seguenti

echo "mv `echo $FILE | tr "}" " " | tr "\200" "?"` \
\"`echo "$FILE2" | tr "}" " " | tr "a" "e"`\"" >> MV1;
done

sort -r MV1 >MV

chmod 755 MV
./MV


preferisco comunque la prima modifica anche perche' puoi evitare
di passare per un file di appoggio :P

---
;---+---;
bye |
bye |hor





Reply to: