Unisci diverse cartelle, ma mantieni solo il file più recente quando si verificano conflitti

0

Ho colpito un po 'un muro con i miei backup. Ho tre backup, ognuno è diverso, alcuni contengono file più recenti di altri backup. Voglio unire queste tre cartelle in una sola, ma quando si verifica un conflitto, mantieni la versione più recente.

Ho provato Path Finder con due cartelle di test. Una cartella aveva due sottodirectory e in ciascuna sottodirectory c'erano due file. Ogni file è stato modificato in momenti diversi. Ho quindi scoperto come dovrebbe apparire l'albero dei file risultante, quindi ho eseguito un test effettivo, che non ha funzionato ...

Puoivederechehasovrascrittoilfilepiùrecente(/One/Sub1/File1)conquelloprecedente(/Two/Sub1/File1),anchesehoselezionato"Keep Newer (data di modifica)" per i file con il Path Finder si fondono. Ma, per qualche strano motivo, ha mantenuto il file più recente nella cartella "Sub 2".

Questo ovviamente non è giusto. E prima di andare avanti e scrivere il mio programma per farlo correttamente, mi piacerebbe sapere se ci sono programmi esistenti e affidabili per fare questo per me?

Ci sono circa 4 TB di dati, diversi milioni di file, in gioco qui.

    
posta thephpdev 20.08.2015 - 18:02
fonte

1 risposta

1

Usa solo rsync:

rsync -au .../src/ .../dest/
rsync -auiP .../src/ .../dest/ #if you need some visual output

ed elimina / src in seguito

con:

-a, --archive               archive mode; same as -rlptgoD  
-u, --update                skip files that are newer on the receiver  
-i, --itemize-changes       output a change-summary for all updates  
-P                          same as --partial --progress  
                            --progress show progress during transfer  
                            --partial keep partially transferred files  

Controlla man rsync per -rlptgoD

    
risposta data 20.08.2015 - 19:32
fonte

Leggi altre domande sui tag