AフォルダからBフォルダにファイルを同期またはコピーしたいです。現在、次のコマンドを使用しています
rsync -aq /tmp/FolderA/* /tmp/FolderB
ところで、FolderBで修正したファイルの項目が消えることを確認しました。次のコマンドが役に立つと思いましたが、うまくいかないようです。
rsync -aqu /tmp/FolderA/* /tmp/FolderB
最後に、FolderBの下のファイルに入力された可能性のある項目を削除せずにFolderAのファイルをFolderBに更新してみました。
同時に、FolderAのファイルが変更された場合は、他の情報を失うことなく追加するのではなく、FolderBのファイルを更新する必要があります。 rsyncコマンドがこれに役立つと思いましたか?
-a
めちゃくちゃでしたか?-r
またはを使用する必要がありますか--inplace
?
よろしくお願いします。
答え1
付属のすべてのオプションを本当に使用するには、-aオプションを使用する必要があります。最初は簡単に見えますが、問題が発生する可能性があります。--archive, -a archive mode; equals -rlptgoD (no -H,-A,-X)
選択肢が多いですハハ。
あなたはそれで逃げることができるかもしれませんrsync -ruP /tmp/folderA/ /tmp/folderB/
。
-P
これは進行のためのものであり、より長い伝送に適している可能性があります。-r
再帰的であり、ディレクトリで動作します。-u
ファイルに追加するのではなく、更新に使用されます。
また、末尾のスラッシュなしで/tmp/folderAを実行すると、フォルダA全体がターゲットの場所に移動しますが、/tmp/folderA/はフォルダA内のコンテンツをターゲットの場所に移動します。しかし、ディレクトリの再帰オプションを忘れないでください!
答え2
rsync
内容に関係なくファイルを操作します。 FolderAからFolderBにコピーすると、FolderAに一致するファイルのコピーが作成され、それをFolderBに入れます。プロセスのさまざまな側面を制御するさまざまなフラグがありますが、基本的な操作は同じままです。つまり、ソースからターゲットにファイルをコピーします。
FolderAよりも最新のFolderBのファイルをスキップするようにスケジュールできます。
特定のパターンに一致するファイルをスキップするようにソートできます。
rsync
ただし、ファイルの内容を解釈することはできず、特定のカスタム条件に一致する行またはレコードのみをコピーできます。
コマンドは、すべてのファイル、ディレクトリ、およびデバイスノードをFolderAからFolderBにコピーし、FolderAと一致しない場合はFolderBのファイルを上書きまたは更新します。
rsync -a /tmp/FolderA/ /tmp/FolderB