Risposte:
Proverei,
rsync -a /from/file /dest/file
è possibile utilizzare altre opzioni come --append
, -P (--partial --progress)
. Vedi man rsync per maggiori informazioni.
O se stai usando, cp
allora usa cp -u
.
da man cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -u
potrebbe non interessarsene, dal momento che controlla solo i timestamp, non le dimensioni ... Quindi dovresti touch
prima utilizzare i file sorgente se devi usarlo . (O semplicemente usare rsync
.)
Per i trasferimenti parziali di file, cp
potrebbe non essere quello che ti serve.
Suggerisco rsync
invece di utilizzare . Anche quando il trasferimento fallisce, puoi semplicemente rieseguire il comando in un secondo momento e copierà solo i file mancanti.
Esempio:
$ rsync -aPEmivvz from/ to/
(copierà from/
nella to/
directory)
Dal momento rsync
che la sincronizzazione e il controllo dopo ogni trasferimento, garantire che i file siano stati copiati correttamente è banale.
Il set di swich -aPEmivvz
è la mia selezione go-to standard , ogni volta che si copiano file su reti o unità esterne, inclusi dispositivi plug-in, come schede SD, ecc.
Questi sono gli interruttori che uso quasi sempre:
-a
: "archivio", include -rlptgo
(ricorsivo, collegamenti simbolici come collegamenti simbolici, autorizzazioni, orari, gruppo, proprietario)
-P
: "avanzamento parziale" mostra una bella barra di avanzamento per ogni file
-E
: "eseguibilità" preserva se eseguibile o meno
-m
: "noempty" prugna dir vuoto
-i
: "riepilogo" stampa il riepilogo delle modifiche per tutti gli aggiornamenti
-vv
: "più prolisso"
-z
: "compressione"
Non dovresti usare cp
per questo. Come altri hanno affermato, non è lo strumento giusto per il lavoro. Lo strumento corretto dipenderà dai tuoi obiettivi.
Se vuoi solo una copia semplice:
rsync /source /destination
con un certo livello di bandiere. Vedi le altre risposte per alcuni esempi davvero validi.
Se vuoi avere aggiornamenti bidirezionali
unison
è la strada da percorrere. Rsync non funziona molto bene alla risoluzione dei conflitti con le sincronizzazioni bidirezionali. Elimina appositamente. Quindi vuoi che le copie bidirezionali si accendanounison
Se si desidera eseguire il backup e i file sono basati su testo, è possibile provare a utilizzare git
. Git può essere eseguito localmente, non è necessario un "server". In effetti, i server git sono solo metodi di condivisione dei file. Potresti avere un repository git sull'unità di backup e "spingerlo" verso di esso. Anche in questo caso funziona davvero solo se i file sono basati su testo e stai cercando di ottenere un backup unidirezionale.
Ancora una volta, se stai cercando un backup (e non solo una volta), guarda deja-dupe, BackIntime o opzioni simili. Prendono istantanee dei dati in un determinato momento. Corrono tutti rsync sotto il cofano.