1. ホーム
  2. linux

[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法

2022-03-17 09:14:53

質問

Linuxで、あるフォルダとそのサブフォルダ、ファイルのパーミッションを一括で変更したいのですが、どうすればいいですか?

以下のコマンドをすでに試しましたが、前述のフォルダに対してのみ動作しました。

chmod 775 /opt/lampp/htdocs

を設定する方法はありますか? chmod 755 に対して /opt/lampp/htdocs と、そのサブフォルダーやファイルを含むすべてのコンテンツが含まれますか?

また、将来的に、新しいフォルダやファイルを htdocs のパーミッションは、どのようにすれば自動的に 755 ?

このStack Overflowの質問も見てみたんですが。

Linux ターミナルでデフォルトの 'chmod' を設定するにはどうしたらいいですか?

どのように解決するのですか?

他の回答は、以下の点で正しいです。 chmod -R 755 は、ツリー内のすべてのファイルとサブフォルダーに対してこれらのパーミッションを設定します。 しかし、いったいなぜ ? ディレクトリについては意味があるかもしれませんが、なぜすべてのファイルに実行ビットを設定するのでしょうか?

あなたが本当にしたいことは、ディレクトリを755に設定し、ファイルだけを残すか644に設定することだと思います。これには find コマンドを使用します。例えば

すべてのディレクトリを755に変更する場合( drwxr-xr-x ):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

すべてのファイルを644に変更する場合( -rw-r--r-- ):

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

ちょっとだけ説明します。 (ありがとうございます。 トッブズ )

  • chmod 755 {} が実行するコマンドを指定します。 find 各ディレクトリに対して
  • chmod 644 {} は実行されるコマンドを指定します。 find 各ファイルに対して
  • {} はパスで置き換えられます。
  • ; セミコロンで find これが実行されるべきコマンドの最後であることを示します。
  • \; セミコロンは エスケープ そうでなければ、シェルはこれを find