web-dev-qa-db-ja.com

Unix:2つのディレクトリをマージする方法

たとえば、foobarという2つのフォルダにさまざまなコンテンツがあるとします。 barfooにマージするにはどうすればよいですか。

  • fooにないbar内のファイルは変更されません。
  • barにないfoo内のファイルはfooにあります。
  • foo内のbar内のファイルも、barのファイルに置き換えられました。
18
Svish

要件を正しく読んでいる場合、fooからbarに至るファイルはありません。 barの内容をfooにコピーするだけで、必要に応じてファイルを上書きできるように見えます(デフォルトの動作)。

$ cp -R /path/to/bar/* /path/to/foo
27
coneslayer

私も非常によく似たニーズがありました。barfooにマージしますが、barにあるファイルfooの一致するファイルを上書きしないでください。この場合:

_$ cp -R -n /path/to/bar/* /path/to/foo/
_
10
Joel Aufrecht

これを試して :

$ cp -r-u-v /path/to/foo/* /path/to/bar/

man cpから
-u、--update SOURCEファイルが宛先ファイルよりも新しい場合、または宛先ファイルがありません
-R、-r、--recursiveディレクトリを再帰的にコピー

1
drew7721