• ベストアンサー

ディレクトリのパーミッションだけ一括変換するコマンドを教えてください。

こんにちわ。 パーミションを変更するコマンドはchmodですが、あるディレクトリ下で、一般ファイルやサブディレクトリなどが入り混じっている場合に、一般ファイルのパーミションは変更せず、サブディレクトリ全て(さらにその階層のサブディレクトリすべて)を一発で755に変えるようなコマンドはありますでしょうか?つまりchmod -Rをディレクトリにだけ適用したいのですが。 逆に言えば、ディレクトリのパーミションは変更されず、一般ファイルだけパーミションを一斉に変更するという感じでも構わないのですが。 どなたかコマンドに詳しい方アドバイスの方よろしければお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#16386
noname#16386
回答No.1

普通この手の処理を行うときは、find コマンドとの組み合わせで行います。 find . -type d -exec chmod 755 {} \; と指定すれば、カレントディレクトリより下のすべてのディレクトリのみpermissionを755に変更します。 カレントディレクトリ(も含みます)にだけ限定したいときは、 find . -type d -maxdepth 0 -exec chmod 775 {} \; などと処理する深さを指定します。もちろん、非常に細かな条件をつけて指定するファイルを選ぶことも可能です。 ただし、findは一気に処理を行いますから、取り返しのつかないことも簡単にできます。-execを実行する前に、自分が想定したファイルがきちんと選ばれているかを確認してから-execするように心がけてください。 findコマンドは非常に奥が深く、オプションも多くて慣れが必要ですが、慣れれば手放せなくなります。まずはマニュアルを参照してください。それで↓のURLからサンプルを見て慣れていきましょう。

参考URL:
http://www.wagoneers.com/UNIX/FIND/find-usage.html
noname#92745
質問者

お礼

ご教示いただきありがとうございました。 とても参考になりました。

関連するQ&A