*変更された/新しいファイルのみ*別のディレクトリにコピーしますか?

*変更された/新しいファイルのみ*別のディレクトリにコピーしますか?

同期を維持したいディレクトリが2つあります。

バックアップの目的で、rsyncコマンドを実行して同期を完了する前に確認できる新しいファイルまたは変更されたファイルを別のUSBドライブ(または別のディレクトリ)にコピーしたいと思います。

最後に私が望むものは:

  1. 元のディレクトリ
  2. バックアップディレクトリ(何があるかを確認する以外はこのコマンドに触れません)
  3. 新しいファイル/変更されたファイルのみを含む別のデルタディレクトリ。

可能ですか?

答え1

私はより良い答えですhttps://serverfault.com/a/508272/173599。ここに関連するコマンドを引用します。

rsync -aHxv --compare-dest=folder2/ folder1/ folder3/

folder1ターゲットとfolder2比較してもコピーしますfolder3

答え2

影響を受けるファイルのみを確認し、ファイル間の違いを確認したくない場合は、--dry-runrsyncオプションを使用できます。テストする砂場を設定してみましょう。

$ cd /tmp
$ mkdir -p testing/{a,b}
$ cd testing/
$ touch a/hello a/world
$ ls a
hello
world
$ rsync -rv --append-verify a/ b
$ ls b
hello
world

これで、以下を変更しますa

$ echo 123 > a/hello 
$ touch a/abc

今それを使用しrsync ... --dry-run ...、何が起こるかを確認してください:

$ rsync -rv --append-verify --dry-run a/ b
sending incremental file list
abc
hello

sent 103 bytes  received 22 bytes  250.00 bytes/sec
total size is 4  speedup is 0.03 (DRY RUN)

実際に変更がないことを確認できますb

$ ls b
hello
world
$ cat b/hello
$

ディレクトリ間の違いを確認するには、次のものを使用できますdiff

$ /bin/diff -aurN a b
diff -aurN a/hello b/hello
--- a/hello 2018-12-13 08:16:23.376761456 +1100
+++ b/hello 2018-12-13 08:16:11.306761686 +1100
@@ -1 +0,0 @@
-123

リモートシステムにあり、b違いを確認する必要がある場合は、ローカルコピーを作成してもb問題ありませんdiff

関連情報