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/