まずこの点を参考にしてくださいいいえ単純な「2つのディレクトリのマージ」は、ソースが変更されたときにそのディレクトリのマージを更新したままにする方法に関する質問です。
a
2つのディレクトリがあり、次の規則に従ってそれらをマージしb
たいとします。c
- エントリは、存在するか最後に変更されたタイムスタンプに関係なく、
a
常に場所を見つける必要があります。c
- 空白を埋めます
b
。
必要に応じて、単純なcp
from b
toと上書きで操作を実行できます(必要以上にコピーしますが、一度だけ使用)。c
a
今私が望むのは更新を維持する方法なので(これはにあるはずですMakefile
)、新しいファイルがあればコピーしてくださいa
。make
に新しいファイルがある場合はコピーしてくださいb
。make
ただにまだ存在しない場合は、ファイルが更新された場合c
に更新し、からファイルが更新されたときに更新します。a
make
c
b
c
ただそれが次から来b
たらいいえa
.
正確に説明してほしいです。
ベストアンサー1
希望の状態を達成する簡単なソリューションです。次の2つのコマンドを使用できます。
rsync -auv b/ c/
rsync -av a/ c/
利点:すべてのサブツリーで再帰的に機能します。
欠点:最初のコマンドの開始から2番目のコマンドの実行が終了するまでの期間、「a /」に似た「b /」の最新のファイルは、交換されるまで一時的に「c /」に配置できます。 。 2番目のコマンドで、「a /」から正しいファイルを取得します。
したがって、ソリューションは、次の条件を満たす場合にのみ適しています。
- 最終結果が必要で、同期中の「c /」状態は気にしません。
- いくつかのファイルを何度もコピーする必要があることを気にしない場合。