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