次のコマンドを使用していくつかのディレクトリを作成しました。mkdir -pm 700 /tmp/a/b/c
私が要求した権限以外の/tmp/a
権限があることに驚きました。775
700
mkdir
指定されたパターンを最後に作成されたディレクトリにのみ適用し、親ディレクトリを無視する理由はありますか?
答え1
これはPOSIXで必要です。基準のためmkdir
:
オプションの場合-p
:
不足している中間パス名コンポーネントを作成します。
以下は:
次に、次のパラメータを使用してchmod()関数を呼び出します。
- mkdir() 呼び出しと同じパスパラメータ
- モードパラメータ値(S_IWUSR | S_IXUSR |〜filemask)&0777。ここで、filemask はプロセスのファイルモード生成マスクです。
これはchmod
、パスの最後のディレクトリでのみ実行されることを意味します。