web-dev-qa-db-ja.com

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

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

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

15
janesconference

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

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

18
Tog

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

-Tを使用するように通知してくれたsrcspiderに感謝!

cp -ruT old-dir new-dir

18
new123456

上で述べたものとは少し異なるフォーマットですが、それは良いol 'cpで行うことができます。ここに私がそれをした方法があります:

cp -ru --target-directory="destination_path" source_path/*
1
Sven Croon

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

DropboxをローカルのNASアプライアンスにバックアップするために使用しますが、Dropboxクライアントを実行できません。

1
Digitalcraig

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

diff -r dir1 dir2

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

1
Oleg