rsync -uオプションは、2つのフォルダを同期するのにどのように役立ちますか?

rsync -uオプションは、2つのフォルダを同期するのにどのように役立ちますか?

sourceフォルダをフォルダと同期さdestinationせ、フォルダ内のすべての変更をターゲットsourceに反映したいと思います。

この場合、次のようにrsyncコマンドを使用します。

rsync -av --progress --delete "/source/" "/destination"

/を使用してコンテンツを指定するにはソースを表示し、ターゲットを表示するには/を使用しないでください。

ソースの修正時間が最新の場合は、その-uオプションを使用してターゲットを更新する必要がありますか?それとも-avそれで十分ですか?

-iこのオプションが必要ですか?ありがとうございます!

-u、--updateこれは、rsyncがターゲットに存在し、ソースファイルよりも変更時間が最新のすべてのファイルをスキップします。 (既存のファイルの変更時間がソースファイルの変更時間と同じでサイズが異なる場合は更新されます。)これは、シンボリックリンクやその他の特殊ファイルのコピーには影響しません。さらに、送信者と受信者の間のファイル形式の違いは、オブジェクトの日付に関係なく常に更新されるほど重要であると見なされます。つまり、ソースにディレクトリがあり、ターゲットにファイルがある場合、タイムスタンプに関係なく転送が行われます。このオプションは除外ではなく転送ルールなので、ファイルのリストに入るデータと削除には影響しません。単に受信者が転送を要求するファイルを制限します。

--deleteこれはrsyncに、受信側から不要なファイル(送信側にないファイル)を削除するように指示しますが、同期されているディレクトリからのみ削除します。ディレクトリの内容( "dir / *"など)にワイルドカードを使用せずにディレクトリ全体( "dir"または "dir /"など)を送信するようにrsyncに要求する必要があります。ワイルドカードはシェルによって拡張されるため、rsyncはファイルの親ディレクトリではなく単一のファイルを転送するように要求されます。 --delete-excludedオプションを使用するか、転送側でのみ一致するようにルールを表示しない限り、転送から除外されたファイルは削除されません(フィルタリングルールセクションの包含/除外修飾子を参照)。 rsync 2.6.7より前では、--recursiveが有効になっていない限り、このオプションは効果がありませんでした。 2.6.7以降、--dirs(-d)が有効な場合でも削除が発生しますが、内容がコピーされるディレクトリにのみ削除が発生します。このオプションは誤って使用すると危険です。 --dry-runオプション(-n)を使用して最初に実行しようとして削除するファイルを確認するのはとても良い考えです。送信者がI / Oエラーを検出すると、ターゲット上のすべてのファイルの削除は自動的に禁止されます。これは、送信側の一時ファイルシステムエラー(NFSエラーなど)によってターゲットから大量のファイルが削除されるのを防ぐためです。 --ignore-errorsオプションを使用してそれを上書きできます。 --deleteオプションは、--delete-WHENオプションと--delete-excludedのいずれかと競合することなく組み合わせて使用​​できます。ただし、--delete-WHENオプションが指定されていない場合、rsyncはrsync 3.0.0以降と通信する場合は--delete-duringアルゴリズムを選択し、以前のrsyncと通信する場合は--delete-beforeアルゴリズムを選択します。 --delete-delay および --delete-after も参照してください。

ベストアンサー1

ソースの修正時間が最新の場合は、その-uオプションを使用してターゲットを更新する必要がありますか?

いいえ、すでにそのようなことが起こっています。実行される操作は-u次のとおりです。防ぐターゲットが最新の場合は変更されます。それ以外の場合、-uファイルはソースバージョン(以前のバージョンである可能性があります)に更新されます。

-iオプションが必要ですか?

-i(例--progress:)は同期動作に影響を与えず、表示された出力にのみ影響します。選択した各ファイルに関する追加情報のみが表示されます。

おすすめ記事