ソースフォルダから欠落しているファイルのみをターゲットフォルダに移動する方法

ソースフォルダから欠落しているファイルのみをターゲットフォルダに移動する方法

私はrsync、Grsync、Unisonをテストしながら、どこでも本を読むのに多くの時間を費やしました。しかし、希望はありません! 2つのローカルフォルダ間でファイルをコピー/同期する一般的なrsyncメソッドは、「フォルダ全体をコピーすることです! - 仮想コンテンツではありません! - 他に何もありません!」

実験のために、同じルートディレクトリに異なる名前を持つ2つのフォルダを作成しました。この結果を得たとき、私はそれらを分離し、それが原因である場合、ソースに同じターゲット名を与えました。

rsyncは、2つのローカルフォルダ間でファイルをコピー/同期する一般的な方法です。

rsync -zrahvWnt --delete-after ~/Documents/test3/source-DRV ~/Documents/test3/dest-T

また、Unisonで利用可能なすべてのオプションを使用しました。希望はありません!結果は同じです!

「最初のルートのための衝突の解決」「右から左への伝播」「右から左へ」

誰も違う仕事をしない!すべての結果は同じです。 「フル」フォルダを別のフォルダ「内部」にコピーしてください!

私が望むのは基本的に簡単です。

  1. ソースから欠落しているファイルが存在するかどうかを確認します。

  2. 移動 - 良いですが、コピーも可能です。

  3. ソースフォルダからターゲットフォルダにのみファイルがありません。

  4. 両方のフォルダにある同じサイズと日付のファイルに対しては何も行いません。

これにより、「フォルダ全体」(ターゲットなど)と「不要なフォルダ」(ソースなど)が作成され、問題なく手動で削除できます。

ソースからターゲットに唯一欠けているファイルやフォルダをコピーするのではなく、rsyncを移動する「最も良い」方法で作成してください。

[編集:]ソリューションの実装中に「模擬実行」を実行する-nオプションを使用していることがわかりました。これは何も機能しない別の理由かもしれません。削除しましたが、すべてが期待どおりに機能します!

ベストアンサー1

あなたの意図を正しく理解したら、最初のパラメータの後にスラッシュを追加するだけですrsync。つまり、文章を書く代わりに

rsync -zrahvWt --remove-source-files ~/Documents/test3/source-DRV ~/Documents/test3/dest-T

書く

rsync -zrahvWt --remove-source-files ~/Documents/test3/source-DRV/ ~/Documents/test3/dest-T

編集する OPの質問に応じて、OPのコメントに基づいて上記のコマンドを修正しました。

パラメータ情報rsync

  • -z:転送中のファイルデータの圧縮
  • -r:再帰:現在のフォルダの下のファイルだけでなく、現在のフォルダの下のフォルダとそのファイルをコピーします。
  • -a:ほぼすべてのもの(日付、権限など)を維持します。
  • -h: 人間が読める形式で数値を出力します。
  • -v:verbose:画面にプロセスの詳細を印刷します。
  • -W:違いデータのみを更新するのではなく、ファイル全体をコピーします。

詳細は を実行して確認できますman 1 rsync

おすすめ記事