Ci sono 2 parti in questa domanda. Innanzitutto, perché c'è una differenza tra "Numero di file" e "Numero di file trasferiti". Questo è spiegato nella manpage di rsync:
Numero di file :è il conteggio di tutti i "file" (in senso generico), che include directory, collegamenti simbolici, ecc.
Numero di file trasferiti :è il numero di file normali che sono stati aggiornati tramite l'algoritmo di trasferimento delta di rsync, che non includere directory create, collegamenti simbolici e così via .
La differenza qui dovrebbe essere uguale alla quantità totale di directory, collegamenti simbolici, altri file speciali. Quelli non sono stati "trasferiti" ma semplicemente ricreati.
Ora per la seconda parte, perché c'è una differenza di dimensioni con du. du mostra la quantità di spazio su disco utilizzata da un file, non la dimensione del file. Lo stesso file può occupare una diversa quantità di spazio su disco, se ad esempio le dimensioni dei blocchi dei filesystem sono diverse.
Se sei ancora preoccupato per l'integrità dei dati, un modo semplice per esserne sicuri è creare hash per tutti i tuoi file e confrontare:
( cd /home/hholtmann && find . -type f -exec md5sum {} \; ) > /tmp/hholtmann.md5sum
( cd /media/wd750/c51/home/ && md5sum -c /tmp/hholtmann.md5sum )
A tutte le altre povere anime perdute che lavorano dalle vacanze nel cuore della notte,
--checksum
fa in modo che rsync controlli effettivamente se ci sono modifiche nei file, altrimenti controlla i timestamp e le dimensioni dei file e lo chiama un giorno,
questo è sufficiente nel 99,9% dei casi e ti fa bruciare all'inferno per il resto dello 0,01% finché non lo capisci
Potrei anche aggiungere qualcosa che ho imparato.
Stavo usando il comando rsync /path/source/* /path/to/destination/*
(notare il globbing). È stato imbarazzante perché il 90% dei miei file era stato trasferito con poche eccezioni (anche essendo nella stessa cartella di alcuni che sono stati trasferiti). Dopo aver rimosso il *
dalla fonte e dalla destinazione, sono stati tutti trasferiti. ¯\_(ツ)_/¯