(大きな)ディレクトリを別のディレクトリにコピーして、異なるファイルのみを変更するにはどうすればよいですか?


14

ディレクトリaとディレクトリbがあります。それらはおおきい。bはaとほぼ同じです。「ほぼ」とは、4〜5個のファイルが異なることを意味し、どのファイルであるかはわかりません。bをaにコピーしますが、異なるファイルのみをコピーします。私はバッシュです。

(いいえ、単純にaを削除してbに置き換えることはできません。1)aはバージョン管理されている2)フルコピー(またはmv)には時間がかかりすぎるからです。異なるファイルのみをコピーしたい)。


rsyncオプションはありますか?
ボビー

それはありますが、rsyncについてはあまり知りません。
janesconference

回答:


17

rsyncこれを行うために使用できます、私が使用するコマンドはrsync -tr "folder to copy from" "folder to copy to"

例えば rsync -tr /home/me/stuff/* /home/me/otherstuff/


1
このコマンドに注意してください。違いのないファイルをすべて削除します。私はそれを走らせ、ほとんどすべてを失いました!!
アービンドK.

@Arvindどのコマンドを使用してデータが失われたのかわかりませんが、rsync -trではありませんでした。manページを読んでください。
トグ

18

古き良きでこれを行うことも可能ですcp

使用を思い出させてくれたsrcspiderに感謝します-T

cp -ruT old-dir new-dir


+1マシン間で同期することに慣れているので、エレガントな方法を忘れています。
トグ

私のために動作しません:(
janesconference

それは実際に良いGnu cpです。;-)
キース

1
OS Xでは、-uオプションは存在しません。日付を比較する必要がないため、cp -r old-dir new-dirを使用しました。
ジャンフランソワボーシャン

動作しません。これが何らかの命名規則であるかどうかはわかりませんが、cp -ru folder-A folder-Bは単にfolder-Aをfolder-B内にコピーし、Aの内容をB内にコピーして上書きしません。これは望ましい効果です。
srcspider

1

別の良いオプションは、特に「ソース」と「宛先」が実際にない場合、Unison(http://www.cis.upenn.edu/~bcpierce/unison/)です。各ディレクトリはルートであり、Unisonはそれらを同期し、将来の同期のためにメタデータを保持します。コマンドラインとcron経由で簡単にスケジュールできるGUIオプションの両方を提供します。

Dropboxを使用して、Dropboxクライアントを実行できないローカルNASアプライアンスにDropboxのバックアップを作成します。


1

上記とは若干異なる形式ですが、良いol 'cpで実行できます。以下がその方法です。

cp -ru --target-directory="destination_path" source_path/*

1

2つのディレクトリを比較できます。

diff -r dir1 dir2

異なるファイルのリストが表示されます

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