На самом деле, вы как бы ответили на свой вопрос, поскольку у вашей первоначальной команды он уже есть --progress
Это правильный вариант, хотя справочная страница немного загадочна:
--progress show progress during transfer
-P same as --partial --progress
Это имеет смысл, так как вы вызываете свою rsync
строку в режиме dryrun, трансер не происходит, но у вас все равно будет прогресс: а именно файлы, которые изменились и будут переданы.
Таким образом, вы получите аккуратный маленький список всех файлов, например:
У места назначения уже есть копия измененного файла, который был обновлен в исходном файле, и старый файл, который остается неизменным. Источник также имеет дополнительный файл: 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
Если затем мы вызовем вашу команду rsync, но удалим элементизацию -i
и просто добавим 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)
Вы получите список только тех файлов, которые rsync передал бы: changefile и newfile.