Ciao Pietro! mi pare che il problema che poni è facile o difficle a seconda di alcune informazioni cui in parte hai accennato:
* atomicità della operazione. > Non lo dico (solo) per un problema di eleganza, ma anche per un problema > di consistenza (per un tot di tempo la cartella, che contiene un albero > piuttosto complesso, sarà inesistente, e questo mi scoccia): so bene che > né rmtree né shutil né qualsiasi altra funzione che possiate supponi che la tua cartella sia "dir", qui si risolverebbe copiando in una cartella dir.new e poi rinominando dir in dir.old, e dir.new in dir. L'operazione non è "atomica" sel senso dei db ma è quanto più vicino si possa immaginare. Poi con calma ti cancelli dir.old Questo però non fa i conti con il contenuto della cartella: cambia durante la copia al punto da dovere ipotizzare che alla fine del processo di copia dir.new sia "non aggiornata" perché nel frattempo hai scritto dati nuovi in dir? questo lo sai tu solo. * semplicità/eleganza hai bisogno di portabilità? devi usarla in linux o windows? qualcuno potrebbe pensare poco eleganti soluzioni non portabili, ma se non serve la portabilità i comandi linux di sistema 'rm -Rf'e 'cp -u' possono risolvere molti problemi. In questo caso attento: cp -u è rapido perché non riscrive file che non siano cambiati ma non cancella file che non servono più (così come tar). A seconda del tipo di file/dati che hai dei file in più sono dannosi o assolutamente ininfluenti. Ancora una volta lo sai solo tu. * rsync come ti han già detto è una ottima soluzione. Risolve tutti i probelmi eccetto la atomicità, ha una opzione che cancella i file che siano presenti nella cartella di destinazione ma non in quella di partenza. E' in generale molto efficente e si usa per sincronizzare interi filesystem. Se la combini con la rinomina della cartella diventa anche quella quasi atomica, ma perdi il vantaggio rispetto a 'cp -a' ... %-( Se vuoi saperne di più, dicci qualcosa di più sulle esigenze della tua copia... ciao *;-) -- Sandro Dentella *:-) http://www.tksql.org TkSQL Home page - My GPL work _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python