GNU/Linux >> Linux の 問題 >  >> Linux

Linux –コマンドラインツールで2つのフォルダを同期する方法は?

WindowsからLinuxに移行したので、Winmergeの代替ソフトウェアを見つけるか、Linux上の2つのフォルダーを比較および同期するためのコマンドラインツールを学びたいと思います。コマンドラインで次のタスクを実行する方法を教えていただければ幸いです…(diffとrsyncについては勉強しましたが、まだ助けが必要です。)

「/home/ user/A」と「/home/ user/B」の2つのフォルダがあります

フォルダAは通常のファイルとフォルダが保存される場所であり、フォルダBはフォルダAの完全なミラーとして機能するバックアップフォルダです(フォルダBにユーザーが直接保存または変更するものはありません)。

私の質問は次のとおりです:

  • フォルダBにのみ存在するファイルを一覧表示するにはどうすればよいですか? (例:最後の同期以降にフォルダーAから削除されたもの)

  • フォルダBのみに存在するファイルをフォルダAにコピーして戻す方法は?

  • 両方のフォルダに存在するが、タイムスタンプまたはサイズが異なるファイルを一覧表示するにはどうすればよいですか? (前回の同期以降にフォルダーAで変更されたもの。何万ものファイルがあり、プロセスが遅くなりすぎるため、チェックサムの使用は避けたいと思います。)

  • フォルダAの正確なコピーをフォルダBに作成するにはどうすればよいですか?つまり、フォルダAからフォルダAにのみ存在するフォルダBにすべてをコピーし、フォルダBにのみ存在するフォルダBからすべてを削除しますが、両方のフォルダで同じファイルには触れません。

承認された回答:

これにより、フォルダAがフォルダBに配置されます:

rsync -avu --delete "/home/user/A" "/home/user/B"  

フォルダAとBのコンテンツが必要な場合 同じように、/home/user/A/を入力します (スラッシュ付き)ソースとして。これにより、フォルダAではなく、すべてのコンテンツが取得され、フォルダBに配置されます。次のようになります。

rsync -avu --delete "/home/user/A/" "/home/user/B"
  • -a すべてのファイルシステム属性を保持して同期を実行します
  • -v 冗長に実行する
  • -u 変更時刻が新しいファイル(または変更時刻が等しい場合はサイズの違い)のみをコピーします
  • --delete ソースに存在しないターゲットフォルダ内のファイルを削除します

マンページ:https://download.samba.org/pub/rsync/rsync.html


Linux
  1. Linuxでコマンドラインを使用してPDFをJPGに変換するには?

  2. コマンドラインツールのみを使用して Linux で DjVu ドキュメントを PDF に変換するにはどうすればよいですか?

  3. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  1. コマンドラインを使用してLinuxを再起動する方法

  2. Linuxコマンドラインで特定の拡張子を持つファイルを削除する方法

  3. Linux コマンドラインからフォルダーをコピーするにはどうすればよいですか?

  1. Aspellを使用してLinuxコマンドラインでスペルをチェックする方法

  2. コマンドラインを使用してLinuxのCPU使用率を確認する方法

  3. コマンド ライン ツールを使用して 2 つのフォルダーを同期する方法