rsync --backup-dir は、バックアップディレクトリに空のフォルダを作成します。

rsync --backup-dir は、バックアップディレクトリに空のフォルダを作成します。

次のフォルダ構造があります。

.
├── bkp
├── dst
└── src
    └── folder
        └── file

次のコマンドを実行します。

rsync -t -r -b --backup-dir /tmp/rsyncTest/bkp/ /tmp/rsyncTest/src/ /tmp/rsyncTest/dst/

私の結果は次のとおりです

.
├── bkp
│   └── folder
├── dst
│   └── folder
│       └── file
└── src
    └── folder
        └── file

私の質問は次のとおりです

  1. bkp(backup-dir)に空のフォルダが作成されるのはなぜですか?
  2. 作成できませんか?

答え1

私はビューに構文が間違っているようです。おそらくこれが期待どおりに機能しない理由です。

~からman rsync

--バックアップディレクトリ=ディレクトリ

したがって、次のようになります。これは私にとって効果的でした。

rsync -tbr --backup-dir=/tmp/rsyncTest/bkp/ /tmp/rsyncTest/src/ /tmp/rsyncTest/dst/

--backupオプションは--backup-dirファイルが変更された後にのみ機能します。たとえば、ディレクトリsrcに3つのファイルがあり、rsyncこのコマンドを使用して一度同期したとします。そのうちの1つを削除して再作成し、ファイルにいくつかの変更を加えてからコマンドをrsync再実行すると、そのディレクトリの古いコピーがそのディレクトリに移動dstされ、--backup-dir新しいコピーがあなたのディレクトリに移動されましたsrc。あなたのディレクトリに行きます。dst変更が検出されないと、ディレクトリには何も保存されませんbkp

答え2

rsyncオプションを使用して、新しく作成された ""(macOSのように)folderの下にbkp表示されないメタファイルを確認して除外します。.DS_Storels -a .--exclude

答え3

bkpに「フォルダ」が生成される理由は、--backup-dirオプションが原因です。このオプションはrsyncにbkpをバックアップディレクトリとして指定するように指示します(つまり、dstフォルダ内の既存のファイルがこのフォルダに移動さ​​れます)。このフォルダが作成されないようにするには、このオプションを削除するだけです。

関連情報