Dunque, ho provato a implementare come suggerito, questo il risultato: ## Costanti ## # imposta src e dst src="src_1" dst="dst_1" ## Funzioni ## # Genera una versione downscalata del file originale function copy_with_resize { echo "comando lanciato: convert "${1}" -filter Lanczos -define filter:lobes=4 -resize 1920x1080\> "${2}"" convert "${1}" -filter Lanczos -define filter:lobes=4 -resize 1920x1080\> "${2}" echo "conversione completata" } # sincronizza src/ con dst/, eccetto i file .jpg rsync -a --delete --exclude \*.jpg "${src}"/ "${dst}"/ # chiama copy_with_resize (che devi scriverti) su tutti i file .jpg # presenti in src/ che sono più nuovi dell'equivalente in dst/ for f in `find "${src}" -name \*.jpg` do t="${dst}"${f#"${src}"} echo "f è "${f}"" echo "t è "${t}"" test "${f}" -nt "${t}" && copy_with_resize "${f}" "${t}" done # elimina i jpg presenti solo in dst/ for t in `find "${dst}"/ -name \*.jpg` do f="${src}"${f#"${dst}"} test -f "${f}" || rm "${t}" done Quello che non mi riesco a spiegare è il risultato: sostiene di fare la conversione, ma non c'è alcun file nella cartella di destinazione. Ho quindi provato a farmi dare sull'output il comando che viene lanciato (convert...) ed eseguirlo autonomamente. La conversione va senza problemi. Se inverto $1 e $2 (e quindi file sorgente e file di destinazione) _convert_ risponde con messaggio del tipo "impossibile aprire file" (giustamente, in quanto non esiste). Ne deduco che convert viene effettivamente lanciato, ma che per qualche motivo non fa quel che dovrebbe e non genera errori. Qualcuno riesce a capire qual è il problema? -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx