• ベストアンサー
  • 困ってます

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

  • 質問No.1843471
  • 閲覧数3030
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0
こんにちわ。

パーミションを変更するコマンドはchmodですが、あるディレクトリ下で、一般ファイルやサブディレクトリなどが入り混じっている場合に、一般ファイルのパーミションは変更せず、サブディレクトリ全て(さらにその階層のサブディレクトリすべて)を一発で755に変えるようなコマンドはありますでしょうか?つまりchmod -Rをディレクトリにだけ適用したいのですが。

逆に言えば、ディレクトリのパーミションは変更されず、一般ファイルだけパーミションを一斉に変更するという感じでも構わないのですが。

どなたかコマンドに詳しい方アドバイスの方よろしければお願いいたします。

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

  • 回答No.1
  • ベストアンサー
普通この手の処理を行うときは、find コマンドとの組み合わせで行います。

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

と指定すれば、カレントディレクトリより下のすべてのディレクトリのみpermissionを755に変更します。

カレントディレクトリ(も含みます)にだけ限定したいときは、

find . -type d -maxdepth 0 -exec chmod 775 {} \;

などと処理する深さを指定します。もちろん、非常に細かな条件をつけて指定するファイルを選ぶことも可能です。

ただし、findは一気に処理を行いますから、取り返しのつかないことも簡単にできます。-execを実行する前に、自分が想定したファイルがきちんと選ばれているかを確認してから-execするように心がけてください。

findコマンドは非常に奥が深く、オプションも多くて慣れが必要ですが、慣れれば手放せなくなります。まずはマニュアルを参照してください。それで↓のURLからサンプルを見て慣れていきましょう。
お礼コメント
noname#92745
ご教示いただきありがとうございました。
とても参考になりました。
投稿日時:2005/12/17 10:36
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

ピックアップ

ページ先頭へ