Con
diff -r
Posso svolgere questo compito, tuttavia ci vuole così tanto tempo perché diff
controlla il contenuto del file.
Voglio qualcosa che determini che due file sono gli stessi per quanto riguarda le loro dimensioni, l'ultima modifica, ecc. Ma nessun controllo a poco a poco il file (ad esempio un video richiede molto tempo).
C'è un altro modo?
Risposta accettata:
rsync, per impostazione predefinita, confronta solo i metadati dei file. ciò significa timestamp, dimensioni e attributi. tra gli altri. ma non il contenuto dei file.
rsync -n -a -i --delete source/ target/
spiegazione:
-n
non copiare o eliminare effettivamente <– QUESTO È IMPORTANTE!!1-a
confronta tutti i metadati del file come timestamp e attributi-i
stampa una riga di informazioni per file--delete
segnala anche i file che non sono nel sorgente
nota:è importante aggiungere i nomi delle directory con una barra. questa è una cosa di rsync.
puoi abbreviare le opzioni di una lettera in questo modo
rsync -nai --delete source/ target/
se vuoi vedere anche le righe stampate per file identici, fornisci -i
due volte
rsync -naii --delete source/ target/
esempio di output:
*deleting removedfile (file in target but not in source)
.d..t...... ./ (directory with different timestamp)
>f.st...... modifiedfile (file with different size and timestamp)
>f+++++++++ newfile (file in source but not in target)
.f samefile (file that has same metadata. only with -ii)
ricorda che rsync confronta solo i metadati. ciò significa che se il contenuto del file è cambiato ma i metadati sono rimasti gli stessi, rsync segnalerà che il file è lo stesso. questo è uno scenario improbabile. quindi o fidati che quando i metadati sono gli stessi, i dati sono gli stessi, oppure devi confrontare i dati dei file bit per bit.
bonus:per informazioni sullo stato di avanzamento, vedere qui:Tempo stimato o lavoro rimasto per completare la rsync?