Мог бы быть лучший путь, но это могло бы работать, хотя не что эффективно:
rsync -vrn / dest:/ > ~/file_list
Затем отредактируйте тест для удаления статистики, затем:
while read file; do
diff $file <(ssh dest "cat $file")
done < ~/edited_file_list
Другая опция:
Вы могли бы также считать монтирование файловой системы с чем-то как sshfs/fuse и затем просто использование различным.
rsync не может сделать этого исходно, но если существует возможность использования унисона, можно произвести различный формат стиля из этого.
Это не возможно исходно, потому что rsync только заботится о двоичных различиях между файлами.
Вы смогли писать сценарий его, с помощью вывода rsync. Но это был бы hackish.
Я действительно полагаю, что это исходно возможно с Унисоном все же.
rsync алгоритм работает путем сравнения двоичных блоков файла. Такая двоичная разность не предназначена, чтобы быть печатаемой. Существует команда, названная rdiff, который использует rsync алгоритм для генерации двоичной разности, но я не думаю, что для того, было бы полезно, что Вы описываете, это является наиболее часто используемым для реализации возрастающих резервных копий.
To expand on Kyle's answer, this automates the process. Note that it is totally untested, probably pretty fragile, and may delete your computer and kill your dog.
#!/bin/bash
REMOTE=${1?Missing Remote Path}
LOCAL=${2?Missing Local Path}
# Trim trailing slash since we'll be adding it as a separator later
REMOTE=${REMOTE%/}
LOCAL=${LOCAL%/}
#Break it down
RHOST=${REMOTE%:*}
RPATH=${REMOTE#*:}
while read FILE; do
diff -u ${LOCAL}/${FILE} <(ssh $RHOST "cat ${RPATH}/${FILE}")
done < <(rsync -vrn $REMOTE/ $LOCAL/ | sed '1d;/^$/q')