回答:
より良い方法があるかもしれませんが、これは効率的ではありませんが、うまくいくかもしれません:
rsync -vrn / dest:/ > ~/file_list
次に、テストを編集して統計を削除してから、次の操作を行います。
while read file; do
diff $file <(ssh dest "cat $file")
done < ~/edited_file_list
別のオプション:
sshfs / fuseのようなファイルシステムをマウントしてから、diffを使用することも検討できます。
rsync --diff
2年後...
rsyncはこれをネイティブに行うことはできませんが、ユニゾンを使用する可能性がある場合は、そこからdiffスタイルのフォーマットを作成できます。
パッチを作成する場合:
rsync -arv --only-write-batch=patch old/ new/
適用するには:
rsync -arv --read-diff=patch dir/
または、自動生成されたスクリプトを使用します。
./patch.sh
ソース:
カイルの答えを拡張するために、これはプロセスを自動化します。完全にテストされておらず、おそらく非常に壊れやすく、コンピューターを削除して犬を殺す可能性があることに注意してください。
#!/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')