デバッグのためにプロジェクトのすべてを777
(rwxrwxrwx
)に設定したので、オープン性をダイヤルダウンして、ルートフォルダー内のディレクトリ(ファイルではなく)を664
に設定したいと思いました。 (rw-rw-r--
)。
これを行うために私は使用しました( bashコマンドを使用してフォルダーを一覧表示する方法は? ):
chmod 664 -- */
これは期待どおりに機能しました。次に、ディレクトリに入るにはディレクトリの実行ビットが必要であることに気付きました。だから私は試しました:
chmod 764 -- */
しかし、それはmissing operand after "764"
エラーをスローしました。
手動で権限を変更することができ(chmod 764 <dir-name>
)、ディレクトリがそれほど多くないので大きな問題ではありませんが、理解したいと思います。
chmod 764 */
を使用して現在のパスのディレクトリをrwxrw-r--
に設定できないのはなぜですか?
これは、シェルグロブオプションを次のように設定した場合に意味があります。
*
には、.
で始まる名前が含まれ、foo
で始まるファイルがない場合、コマンドecho foo*
は、文字通りfoo*
を出力するのではなく、空白行を出力します。)上記が当てはまる場合、最初のコマンドは.
をモード664に設定します。これは、2番目のコマンドを発行したときに.
を読み取る権限がなかったことを意味します。そのため、*/
を展開できず、chmod 764 -- */
はchmod 764 --
になりました。