Domanda: Di recente ho dovuto copiare un numero enorme di file che occupavano uno spazio di archiviazione di 7 TB in un'altra posizione sulla mia scatola CentOS. Ho usato il comando "cp", ma per qualche motivo (potrebbe essere un problema di rete), il comando è terminato dopo aver copiato alcuni file e directory. Ora, se riprendo l'operazione di copia, il comando ricomincia da capo copiando i file che sono già stati copiati (che di nuovo richiede molto tempo e CPU). Quindi la mia domanda è:posso dire "cp ' comando per ignorare i file e le directory che sono già stati copiati (in modo da poter risparmiare tempo e CPU). Qualche suggerimento?
Risposta: Puoi utilizzare "cp ' comando o 'rsync ' per copiare i file.
Solution1:in primo luogo vedremo il comando CP:
cp -u --force <src> <dst>
Qui –tu l'opzione copia un file solo se il file SOURCE è più recente del file di destinazione o se il file di destinazione è mancante.
Nota :nel caso, se il comando precedente richiede come indicato di seguito:
cp : overwrite '<filename>'
Quindi, il 'cp Il comando sarebbe un alias con una modalità interattiva! Per trovare l'alias di 'cp', digita il comando seguente:
# type cp
cp is aliased to `cp -i'
Poiché è interattivo, richiedeva di fornire l'input dell'utente anche se avevi specificato –force opzione. Per evitare quanto sopra ed eseguire una copia non interattiva, utilizzare il percorso assoluto del comando cp come mostrato di seguito:
/usr/bin/cp -u --force <src> <dst>
Soluzione 2:utilizzo del comando rsync:
# rsync -av --ignore-existing<src> <dst>
Nota :rsync creerà un elenco di file in anticipo. Se la tua fonte ha un numero grande di file, quindi rsync ci vogliono ore e ore e ore per creare un elenco di file così grande! e potresti pensare che il processo si sia bloccato, aggiungi invece -p opzione e vedrai una barra di avanzamento e non devi davvero pensare che rsync sia sospeso!