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

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: