0

2 つの場所からのパス/ファイルのサブセットの変更を同期するのが好きです。一部のバージョン管理ツールがリストするように、すべての変更のパスがありますが、それらに何が起こったのかについての情報はありません。簡単に聞こえますが、ほとんど不可能に思えます..注意事項は次のとおりです。

複数のソース引数を使用し、それらを/./likeで固定する

rsync -a --delete /some/path/./file1 /some/path/./subfolder/file2 host:/some/path

これは、ソース側にもう存在しない、移動または削除されたファイルを除いて機能します。これらは rsync による苦情であり、ターゲット側では削除されません。

そこで、複数のソースの代わりにフィルターを使用してみ--include=/subfolder/file1 --exclude=*ました。ただし、ディレクトリを省略すると再帰が停止するため、最上位で停止し、ファイルを同期しません。

--include=*/そのため、再帰を再度有効にするために、exclude ステートメントの前に追加しました。次に、リストにないフォルダーはすべて同期されます。そのメタデータが同期されます。また、-vどこにでもあるすべてのフォルダーの乱雑な出力になってしまいます。

-mそのため、一部の人々が示唆しているように、「空の」ディレクトリを除外することを追加しました(実際には空ではありませんが、除外によってそのようにレンダリングされます)。ただし、--deleteすべてのディレクトリが削除対象としてリストされているため、これは と相互作用します。他のフィルターとは対照的に-m、一致する空のディレクトリも削除リストに入れているようです。

今、私はアイデアを使い果たしています...

4

1 に答える 1