Re: Newbie in programmazione bash
Ciao,
Il Ven, 1 Marzo 2013 9:25 pm, breathe@rotellaweb.it ha scritto:
> Questo è il codice scritto in maniera corretta e che non fa cosa
> vorrei, cioè copia sempre i file con -ctime 1 in tutte le cartelle:
>
> #!/bin/bash
>
> y=1
>
> while [ $y -le 15 ];
> do
> find ./ -type f -ctime $y > lista
> for i in `cat lista`;
> do
> cp $i $y/
> done
> y=$(( $y + 1 ))
> done
Che dirti? Ho copiato il codice qui sopra e direi che fa proprio quello
che vorresti.
Tieni conto che il tuo "for i in `cat lista`" funziona solo se i nomi di
file inseriti nella lista non contengono spazii, a-capo, tabulazioni...
Come ti è già stato suggerito, il tutto si potrebbe compattare, magari
usando l'azione -exec di find e un for invece di un while per y:
for y in $(seq 15);do find . -type f -ctime $y -exec cp \{\} $y/ \;;done
Questa versione si comporta come previsto anche nel caso di nomi-file
"strani"... e non ha bisogno di bash.
--
http://bodrato.it/software/
Reply to: