4

Mac 用の信頼できるファイル同期プログラムが見つからないため、2 つのフォルダー間でコマンド ライン Rsync を使用しています。

「rsync -r source destination」を使用しています。

-これはファイルを双方向に同期しますか、それともソースと宛先のみを同期しますか? -ファイルが以前に 2 つのフォルダー間で同期されていたが、不要になったために削除された場合、ソースと宛先の両方で削除されますか? それとも、常に不足している場所にコピーされますか?

4

2 に答える 2

4

いいえ、rsyncリモート ディレクトリの内容をローカル ディレクトリに同期します。その点では一方通行です。必要に応じて、リモート フォルダーに存在しなくなったローカル ファイルを強制的に削除することができます。

両方のマシンで最新の変更を保持したい場合は、より複雑な rsync の呪文を指定し、両方のマシンを rsync サーバーとしてセットアップする必要があります。そうすることで、特に削除に対して権威主義的になりたい場合は、最終的に問題が発生すると思います。

いずれの場合でも、-u(または--update) オプションを使用すると、宛先側でより新しいファイルをスキップできます。タイムスタンプについて心配する必要があり、これは競合やマージを処理しません。それでも...次のように簡単かもしれません:

rsync -u -r target1 target2
rsync -u -r target2 target1

それは削除については何もしません。一方のターゲットで欠落しているファイルが削除され、もう一方のターゲットで新しいファイルが作成されたことを知る方法はありません。

これがバージョン管理が発明された理由です... バージョン管理が怖い人のために、DropBox のようなサービスが存在します。

于 2012-12-10T01:25:03.737 に答える
1

元の質問に答える:

1)プルまたはプッシュメカニズムに応じて、ファイルを一方向にのみ同期します。プッシュとプルのメカニズムについては、「man rsync」によるマニュアルページを参照してください。

したがって、質問の残りの部分では、両方の方法で機能するとは想定しないでください。

2)ファイルは宛先ディレクトリでのみ削除されます。コマンドでこれに関する詳細を取得しrsync --helpます。目的のディレクトリから不要なファイルを削除するオプション --delete と削除のその他のオプションを参照してください。

3)リモートマシン/ディレクトリ/にファイルをプッシュしている場合、不足しているファイルは宛先ディレクトリにのみコピーされます

プッシュ機構のサンプル例:-

rsync -avz /home/local_dir/abc.txt remoteuser@192.168.xx.xx:/home/remoteuser/

abc.txt という名前のファイルが宛先ディレクトリに既に存在する場合、ローカル側の abc.txt の古いバージョンであるかどうかに応じて更新されます。また、abc.txt がリモート ディレクトリに存在しない場合、abc.txt という名前のまったく新しいファイルが作成され、ローカル バージョンの abc.txt の内容が含まれます。

プル機構のサンプル例:-

rsync -avz remoteuser@192.168.xx.xx:/home/remoteuser/abc.txt /home/local_dir/

abc.txt という名前のファイルがローカル ディレクトリに既に存在する場合、リモート側の abc.txt の古いバージョンであるかどうかに応じて更新されます。また、abc.txt がローカル ディレクトリに存在しない場合は、abc.txt というローカル バージョンのコンテンツを含むまったく新しいファイル abc.txt が作成されます。

于 2012-12-25T16:08:35.890 に答える