chmod コマンドは、パーミッションを変更するコマンドだが、変更可能な範囲はワイルドカードを利用しても1階層のみになってしまう。サブディレクトリも含めて特定のファイルのパーミッションを変更するにはどうしたらよいだろうか。
答えは、find で該当するファイルを探し、chmod にその結果を渡してパーミッションを変更してあげればいい。
以下は、指定ディレクトリを /var/www/cgi-bin/ とした場合のそれぞれの例です。
指定ディレクトリ内のすべての .cgi ファイルのパーミッションを変更する場合
find /var/www/cgi-bin/ -name \*.cgi -exec chmod 755 {} \;
指定ディレクトリ内のすべてのディレクトリのパーミッションを変更する場合
find /var/www/cgi-bin/ -type d -exec chmod 755 {} \;
こういう小さな知識の積み重ねがサーバー管理の効率化に繋がっていく...かな(^^;
コメント