私はMacOSを使用していますが、--permsフラグを使用してもロギングは表示されませんrsync -h
。このフラグはどのような違いをもたらしますかrsync --perms
?おそらくファイル権限を維持しますが、rsyncがデフォルトでこれを実行しないのはなぜですか?
答え1
このrsync -h
オプションは完全な権威のある文書ではなく、要約です。
man -P 'less -p --perms$' rsync
MacOSの基本rsyncで実行してみると、詳細がわかりました。rsync --perms
設定した宛先権限にソース権限をコピーします。
マニュアルから:
要約:ターゲットファイル(以前と新規)のソース権限を提供するには、--permsを使用します。新しいファイルにターゲットのデフォルト権限を付与するには(既存のファイルは変更せずに)、--permsオプションがオフになっていることを確認し、--chmod = ugo = rwXを使用します(これにより、すべてのマスク解除ビットが有効になります)。
ユーザーは、ソースファイルの権限をターゲットファイルにコピーしたくない場合があります。たとえば、ローカル構成ファイルをリモート・サーバーにコピーする場合、リモート・サーバーは異なる権限セットを持つことができます。
rsync
上記のユースケースをサポートしています--chmod
。他のrsync
オプションは、すべてのユーザー/ユースケースがターゲットファイルがソースファイルと一致すると予想することができないより多くのユースケースを提案します--executability
。--no-perms
違いは、--perms
ターゲットに対するソース権限が適用されますが、デフォルトの動作(no --perms
)は関連ディレクトリおよび/またはプロセスのumaskまたはsetgidによって異なります。
もう少し後から始めると、同じ手動入力が行われます。
このオプションをオフにすると、権限は次のように設定されます。
- 既存のファイル(更新されたファイルを含む)は既存の権限を保持しますが、実行可能オプションはファイルの実行権限のみを変更できます。
- 新しいファイルの「一般」権限ビットは、受信側のumask設定を使用してマスクされたソースファイルの権限ビットに設定され、新しいディレクトリが親ディレクトリからsetgidビットを継承しない限り、特殊権限ビットは無効になります。