Usa rsync
. Sincronizzerà le directory in una direzione. Quindi, se vuoi aggiornare il tuo old
cartella con tutto da new
, ma tieni quello che c'è dentro, usa solo:
rsync -avh --dry-run /path/to/new/ /path/to/old/
Questo, in un primo momento, produrrà solo l'elenco dei file che verrebbero trasferiti. In tal caso:tutto ciò che si trova in new
verrà copiato in old
, a meno che non sia già presente. Tutto in old
rimane così com'è.
Se ti sembra a posto, rimuovi il --dry-run
argomento per trasmetterli per davvero.
Il -avh
i flag abilitano solo la modalità di archiviazione (che conserverà i timestamp, ecc.), La verbosità e le dimensioni dei file leggibili dall'uomo. Nulla verrà eliminato dalla destinazione a meno che non specifichi --delete
bandiera. Consulta man rsync
per ulteriori informazioni.
rsync sarebbe probabilmente un'opzione migliore qui. È semplice come rsync -a subdir/ ./.controlla questa risposta unix.stackexchage per soluzioni migliori
usa -f
con il cp
comando
cp -fR /source/files /dest
sopprimi cp per sovrascrivere" prompt..
Per sovrascrivere l'alias di cp puoi semplicemente racchiuderlo tra virgolette:
'cp' -rf ./source/* /destination/
per maggiori informazioni segui questi link:
http://www.wallpaperama.com/forums/cp-command-problems-forcing-overwrite-using-cp-command-t5685.html
http://bytes.com/topic/unix/answers/865372-force-cp-overwrite-existing-directory