あり
diff -r
私はこのタスクを実行できますが、diff
のため、非常に時間がかかります ファイルの内容を確認します。
2つのファイルのサイズ、最終更新日などが同じであると判断するものが必要です。ただし、ファイルを少しずつチェックする必要はありません(たとえば、ビデオに非常に時間がかかります)。
他に方法はありますか?
承認された回答:
rsyncは、デフォルトでは、ファイルメタデータのみを比較します。これは、タイムスタンプ、サイズ、および属性を意味します。とりわけ。ただし、ファイルの内容ではありません。
rsync -n -a -i --delete source/ target/
説明:
-
-n
実際にコピーまたは削除しないでください<–これは重要です!! 1 -
-a
タイムスタンプや属性など、ファイルのすべてのメタデータを比較します -
-i
ファイルごとに1行の情報を印刷する --delete
ソースにないファイルも報告します
注:ディレクトリ名にスラッシュを追加することが重要です。これはrsyncです。
このように1文字のオプションを短くすることができます
rsync -nai --delete source/ target/
同一のファイルに対して印刷された行も表示する場合は、-i
を指定します。 2回
rsync -naii --delete source/ target/
出力例:
*deleting removedfile (file in target but not in source)
.d..t...... ./ (directory with different timestamp)
>f.st...... modifiedfile (file with different size and timestamp)
>f+++++++++ newfile (file in source but not in target)
.f samefile (file that has same metadata. only with -ii)
rsyncはメタデータのみを比較することに注意してください。つまり、ファイルの内容が変更されてもメタデータが同じままである場合、rsyncはそのファイルが同じであると報告します。これはありそうもないシナリオです。したがって、メタデータが同じである場合はデータが同じであると信頼するか、ファイルデータを少しずつ比較する必要があります。
ボーナス:進捗情報については、こちらを参照してください:rsyncの完了までの時間または残りの作業を見積もりますか?