W rzeczywistości odpowiedziałeś na własne pytanie, ponieważ twoje pierwotne polecenie już je ma: --progress
Jest to poprawna opcja, chociaż strona podręcznika jest nieco tajemnicza:
--progress show progress during transfer
-P same as --partial --progress
To ma sens, ponieważ wywołujesz swój rsync
ciąg znaków w trybie dryrun, nie dzieje się nic innego, ale nadal masz postęp: mianowicie pliki, które się zmieniły i zostałyby przeniesione.
W ten sposób otrzymujesz schludną małą listę wszystkich plików, na przykład:
Miejsce docelowe ma już kopię pliku zmienionego, który został zaktualizowany w źródłowym i starym pliku, który pozostaje niezmieniony. Źródło ma również dodatkowy plik: newfile.
#~$ ls -lhan /tmp/destination/
total 20K
drwxrwxr-x 2 1000 1000 4,0K Jän 31 09:07 .
drwxrwxrwt 18 0 0 12K Jän 31 09:15 ..
-rw-rw-r-- 1 1000 1000 2 Jän 31 09:08 changedfile
-rw-rw-r-- 1 1000 1000 0 Jän 31 09:07 oldfile
#~$ ls -lhan /tmp/source/
total 20K
drwxrwxr-x 2 1000 1000 4,0K Jän 31 09:07 .
drwxrwxrwt 18 0 0 12K Jän 31 09:15 ..
-rw-rw-r-- 1 1000 1000 2 Jän 31 09:15 changedfile
-rw-rw-r-- 1 1000 1000 0 Jän 31 09:07 newfile
-rw-rw-r-- 1 1000 1000 0 Jän 31 09:07 oldfile
Jeśli następnie wywołamy twoją komendę rsync, ale usuń -i
wyszczególnienie i po prostu dodaj dryrun-n
#~$ ~$ rsync -n -rza --progress --stats --ignore-times --checksum /tmp/source/ /tmp/destination/
sending incremental file list
changedfile
newfile
Number of files: 4 (reg: 3, dir: 1)
Number of created files: 1 (reg: 1)
Number of deleted files: 0
Number of regular files transferred: 2
Total file size: 2 bytes
Total transferred file size: 2 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 187
Total bytes received: 22
sent 187 bytes received 22 bytes 418.00 bytes/sec
total size is 2 speedup is 0.01 (DRY RUN)
Otrzymasz listę tylko plików, które rsync przetransferowałby: zmieniono plik i nowy plik.