新しいファイルのみをコピー-これは可能ですか?基本的に2つのフォルダをマージしたい


14

Drive 1にMusicというフォルダがあり、100 GBです。Drive 2にMusicと呼ばれるフォルダーがあり、それは116GBです。最新のバージョンです。すべてのファイルを書き直すことなく、Musicフォルダーをドライブ2からドライブ1にコピーするにはどうすればよいですか?


OS Xのどのバージョンを使用していますか?
Nix

1
10.7.4を使用しています。あるドライブから別のドライブにフォルダをコピーすると、置き換えるかどうかを尋ねられます。マージオプションはありません。
ダレン

回答:


5

マージオプションは、フォルダを(移動ではなく)コピーする場合にのみ表示されます。option新しいフォルダを古いフォルダの場所にドラッグする間、押したままにしてください。または、+ cを使用して新しいフォルダーをコピーし、+ vを使用して古いフォルダーに貼り付けると、ファイルをマージするオプションが表示されます。


これはまだ書き直す必要のないファイルを上書きするようです。rsync代わりに使用
BRogers

マージするオプションが利用可能であっても、それが機能しない場合があります(エラーを報告して何もしない)-特にあなたの場合のように大きなフォルダーの場合。これは、rsyncを使用する必要があるもう1つの理由です。
Andrzej Martyna 2017年

24

これはrsyncの典型的な使用例です。

rsync -av /source-path/source-dir /destination-path

rsyncは、新しいファイルと変更されたファイルのみを新しい場所にコピーします。

ソース引数の末尾のスラッシュがどのように機能するかを理解することが重要です。末尾にスラッシュがある場合、/ source-path / source-dirの内容がdestination-pathにコピーされます。末尾にスラッシュがない場合、source-dir自体が宛先にコピーされ、その内容は宛先階層の別のレベルになります。

したがって、あるパスを別のパスに複製する場合は、次のように末尾のスラッシュを含めます。

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/

1
グレートキャッチ!複数のドライブ(またはコンピューターの任意の場所)からこれを実行していて、ディレクトリを入力したくない場合は、ドライブ(外部USB、またはタイムカプセル)または特定のディレクトリをドラッグして追加することができます。それはあなたのためのコマンドに。ターゲットの場所をターミナルにドラッグするだけです
BRogers 2016年

男、最後のスラッシュを提案してくれてどうもありがとう。なぜrsync -av ./foo/bar / vol1 / foo / barが既存のすべてのファイルをコピーしていたのかを考えてみました。ブラッディスラッシュlol !!!
16

4

更新

まず、coreutilsを最初にインストールします。を実行しますbrew install coreutilsbrewインストールしていない場合は、Windowsに切り替えてください。

cp --version出力バージョンcp (GNU coreutils) 8を確認します。^^

次に、正しいcpバージョンがあり、-uフラグが機能します。


cpコマンドを確認してください。man cpオプションを使用して読みます。次のようなことができます:

cp -r -u ~/source ~/destination

-R、-r、--recursive:ディレクトリを再帰的にコピーします
-u、--update:SOURCEファイルが宛先ファイルよりも新しい場合、または宛先ファイルが欠落している場合にのみコピーします
-pは--preserve = mode、ownershipと同じです、タイムスタンプ
-v --verbose:何が行われているかを説明します

したがって、Downloads / musicフォルダーからファイルをコピーして、Music / newフォルダーと言う場合は、次のようにします。 これにより、これら2つのフォルダーの内容がマージされ、同じ名前とパスを持つ2つのファイルが存在する場合は、タイムスタンプに基づく最新のもの。
cp -ruvp ~/Downloads/music/* ~/Music/new/


-uオプションはOSXのcpコマンドで動作しますか?Sierraで「cp:invalid option-u」というメッセージが表示されます。すべてのコマンドがLinuxと同じではないようです。
OMA

cp --helpコマンドを試して、オプションが利用可能かどうかを確認します。または、cp --versionをチェックして、それが最新であることを確認してください。私が使用しています:cp(GNU coreutils)8.27
drew7721

悲しいことに、-uはOS Xでのcpの有効なフラグではありません。
パーQuested Aronsson

残念ながら、この答えは正しくありません。
ウィリアムセルヌーク

brew install coreutils正しいcpバージョンを取得するために使用します。
drew7721

0

デフォルトのLion Mergeボタンが表示されない理由がわかりません。しかし、私は結局使用しましたditto。ここにあります:https : //superuser.com/a/221599/102789


1
注意してください!dittoは新しいファイルを保持せず、常に宛先でソースを上書きします。ソースファイルが古い場合、新しいファイルが削除され、古いファイルに置き換えられます
FrancescoMM

そうです
-FrancescoMM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.