`mkdir -pm`が私が要求した権限を設定しないのはなぜですか?

`mkdir -pm`が私が要求した権限を設定しないのはなぜですか?

次のコマンドを使用していくつかのディレクトリを作成しました。mkdir -pm 700 /tmp/a/b/c

私が要求した権限以外の/tmp/a権限があることに驚きました。775700

mkdir指定されたパターンを最後に作成されたディレクトリにのみ適用し、親ディレクトリを無視する理由はありますか?

答え1

これはPOSIXで必要です。基準のためmkdir

オプションの場合-p

不足している中間パス名コンポーネントを作成します。

以下は:

次に、次のパラメータを使用してchmod()関数を呼び出します。

  1. mkdir() 呼び出しと同じパスパラメータ
  2. モードパラメータ値(S_IWUSR | S_IXUSR |〜filemask)&0777。ここで、filemask はプロセスのファイルモード生成マスクです。

これはchmod、パスの最後のディレクトリでのみ実行されることを意味します。

関連情報