
次のフォルダ構造があります。
.
├── 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
私の質問は次のとおりです
- bkp(backup-dir)に空のフォルダが作成されるのはなぜですか?
- 作成できませんか?
答え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_Store
ls -a .
--exclude
答え3
bkpに「フォルダ」が生成される理由は、--backup-dirオプションが原因です。このオプションはrsyncにbkpをバックアップディレクトリとして指定するように指示します(つまり、dstフォルダ内の既存のファイルがこのフォルダに移動されます)。このフォルダが作成されないようにするには、このオプションを削除するだけです。