rsync --perms - どのような違いがありますか?

rsync --perms - どのような違いがありますか?

私はMacOSを使用していますが、--permsフラグを使用してもロギングは表示されませんrsync -h。このフラグはどのような違いをもたらしますかrsync --perms?おそらくファイル権限を維持しますが、rsyncがデフォルトでこれを実行しないのはなぜですか?

答え1

このrsync -hオプションは完全な権威のある文書ではなく、要約です。

man -P 'less -p --perms$' rsyncMacOSの基本rsyncで実行してみると、詳細がわかりました。rsync --perms設定した宛先権限にソース権限をコピーします。

マニュアルから:

要約:ターゲットファイル(以前と新規)のソース権限を提供するには、--permsを使用します。新しいファイルにターゲットのデフォルト権限を付与するには(既存のファイルは変更せずに)、--permsオプションがオフになっていることを確認し、--chmod = ugo = rwXを使用します(これにより、すべてのマスク解除ビットが有効になります)。

ユーザーは、ソースファイルの権限をターゲットファイルにコピーしたくない場合があります。たとえば、ローカル構成ファイルをリモート・サーバーにコピーする場合、リモート・サーバーは異なる権限セットを持つことができます。

rsync上記のユースケースをサポートしています--chmod。他のrsyncオプションは、すべてのユーザー/ユースケースがターゲットファイルがソースファイルと一致すると予想することができないより多くのユースケースを提案します--executability--no-perms

違いは、--permsターゲットに対するソース権限が適用されますが、デフォルトの動作(no --perms)は関連ディレクトリおよび/またはプロセスのumaskまたはsetgidによって異なります。

もう少し後から始めると、同じ手動入力が行われます。

このオプションをオフにすると、権限は次のように設定されます。

  • 既存のファイル(更新されたファイルを含む)は既存の権限を保持しますが、実行可能オプションはファイルの実行権限のみを変更できます。
  • 新しいファイルの「一般」権限ビットは、受信側のumask設定を使用してマスクされたソースファイルの権限ビットに設定され、新しいディレクトリが親ディレクトリからsetgidビットを継承しない限り、特殊権限ビットは無効になります。

関連情報