web-dev-qa-db-ja.com

現在のディレクトリ内のすべてのディレクトリの権限を再帰的に変更するにはどうすればよいですか?

現在のディレクトリ内のすべてのファイルとフォルダーのフォルダーとファイルのアクセス許可を再帰的に変更するにはどうすればよいですか?なぜかわかりませんが、私のコマンドはこれで失敗します

output: chmod: missing operand after '644./components/path/path/path'

私のコマンドは:

find . * -type d -exec chmod 755{} \;

ユーザーpdoを指定したので、フォルダーのアクセス許可を755-に変更します

6
Alan Kis

644の後にスペースがありません。

また、644はおそらくディレクトリに必要なものではありません。おそらく755が必要です。

以下のコメントからの回答を含めるように編集します。

ディレクトリの場合:

find . -type d -exec chmod 755 {} \;

ファイルの場合:

find . -type f -exec chmod 644 {} \;

これを行う方法は他にも(おそらくもっと短い)ありますが、これでうまくいきます。

11
pdo

これを行う別の方法は次のとおりです。

chmod -R u=rwX,g=rX,o=rX /path/to/dir

大文字のXは条件付き実行です。ファイルがディレクトリの場合、実行ビットが追加されますORファイルがすでに実行可能の場合、実行ビットは保持されます。

ただし、これにより、ディレクトリ以外のファイルに権限が追加されます。これらのアクセス許可が受け入れられる場合、これはフォルダーへのアクセスをすばやく追加するために機能します。

6
Paul Calabro