Allora, devo realizzare uno script bash ma non sono un grande esperto del settore, percui vi chiedo una mano.

Partiamo dicendo che ho un programma che scrive in una cartella alcuni file e io devo copiarli tutti in un'altra cartella. Non ho modo di sapere quando il programma in questione finirà di scrivere tutti i file, quindi lo script in questione sarà lanciato periodicamente (tipo ogni 10 secondi) e dovrà ogni volta copiare i file nuovi.

Nello specifico, quello che lo script deve fare è:

1) copiare i file da una cartella (in modo ricorsivo) ad un altra, senza riprodurre l'alberatura delle cartelle. Inoltre come ho detto prima ad ogni passata deve copiare solo i file nuovi. Per tenere il conto di cosa ho copiato e cosa no, dato che non posso cancellare i file dalla directory di origine, pensavo di aggiungere ai file copiati (quelli sorgente) un ".copied" finale. In modo tale che nello script posso selezionare solo i file che non terminano in ".copied" (e quindi copiare solo i file nuovi rispetto alle passate precedenti).
Ovviamente la cartella di destinazione viene passata allo script ma non è detto che esista, quindi lo script deve crearla (se non esiste).
I file che deve copiare sono tutti quelli che si trovano nella cartella sorgente e le relative sottocartelle, ad eccezione di quelle che si chiamano "tmp". In ogni cartella ce n'è una che si chiama "tmp" (che serve ad appoggio all'altro programma). I file lì dentro li devo saltare.

2) una volta copiato un file nella cartella di destinazione lo script deve creare un nuovo file con qualche informazione dentro (ad esempio il percorso del file che ha appena copiato). Il file creato si dovrà chiamare con lo stesso identico nome del file copiato, ad eccezione del fatto che gli sarà aggiunto un ".info" finale.

Ovviamente se avete idee alternative per risolvere il problema, ben venga (tipo qualcosa di migliore per quanto riguarda il conteggio dei file nuovi). Considerate comunque che i file sorgenti non posso né cancellarli né cambiarne il nome togliendo qualcosa. Posso solo aggiungere stringhe al nome file, ma non togliere nulla.
Inoltre i file della cartella di destinazione vengono periodicamente cancellati, ovvero c'è anche un terzo programma che leggerà i file dalla cartella di destinazione, farà quello che deve fare, e poi cancellerà i file che ha già esaminato.

Non ditemi (per favore) di non scrivere questo script e fare tutto nell'altro programma. Ho già adottatto questa soluzione ma è molto più lento. Il terzo programma è in java e facendo un paio di test semplici ho visto che la semplice copia dei file fatti dal programma java è molto più lenta di un semplice

codice:
find $1/* -exec cp \{\} $2 \;
Vi ringrazio in anticipo delle risposte....