• ベストアンサー

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

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

noname#92745
noname#92745

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

  • ベストアンサー
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

  • コマンドプロンプトによるファイル名一括変換

    コマンドプロンプトで、サブディレクトリを含めたファイル名の一括変換 をしたいのですが、次のコマンドを叩いたら、「コマンドの構文が間違っています」と出てしまいました。どこがおかしいのでしょうか? カレントディレクトリの中の「*.txt」ファイルをすべて「*.doc」にしたい場合↓ for /r /d %i in (*) do ren %i\*.txt *.doc よろしくお願いします。

  • パーミッションの変更

    RedhatES3.0サーバです。 複数のディレクトリ及びファイルのグループの変更「chgrp -R」を行おうしたら、 誤って「chmod -R」をやってしまった様で権限が変わってしまいました。 それを元に戻したいのですが、「chmod -R」で変えるとファイルもディレクトリも同じ設定になりますが、 ファイルは「644」、ディレクトリは「755」に設定したいです。 この設定をまとめて実行する方法は無いのでしょうか。

  • Linux上でファイル・ディレクトリのパーミッションを強制的に変える

    Linux上でファイル・ディレクトリのパーミッションを強制的に変える Linuxでファイルサーバを立てています. まず,やりたいことは3つあります. 1.特定のユーザに対してファイルのパーミッションを変えるコマンド(chmod)を使用不可能にしたいのですがどうしたらよいのでしょうか? 2.ファイル(ディレクトリ)のパーミッションを強制的にrwxr_xr_xにしたいのですが,可能でしょうか?つまり,指定したパーミッション以外のファイル(ディレクトリ)をコピーしたといしても,そのファイルのパーミッションはrwxr_xr_xに強制的に変わるということです. 3.特定のユーザでディレクトリの移動を/homeより上の階層に動かしたくないのですがどうしたらよいのでしょうか?つまり自分と他のユーザのディレクトリは見に行けるがルート以下のシステム関連には移動してほしくないということです. よろしくおねがいします.

  • ディレクトリのパーミションを確認

    スクリプトのログファイルを生成するために、ディレクトリのパーミションを確認したいのですが、よい方法などございますでしょうか? is_writable() is_wtiteable() fileperms() ともに、ディレクトリではなくファイルのパスを指定しなければいけないようなのですが、ディレクトリのCHMOD のチェックなどできるのでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに

    chmodコマンドで、あるディレクトリ以下の"*.sh"ファイル全てに実行権限を与える方法を教えてください。

  • ディレクトリの中身を出すコマンド(SSH)

    ディレクトリの中に複数のファイルが含まれている時 全てのファイルをディレクトリと同じ階層に移動させたい場合 mv ファイル名 .. このように、ひとつひとつファイルを外に出しているのですが 一度に全部ファイルの中身を出すコマンドはありますでしょうか? ご存知の方はご教授いただけると幸いです。 よろしくお願い致します。

  • FTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?

    タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。 ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。 よろしくお願いします。

  • サブディレクトリも含む特定のファイルを削除したい

    UNIX系のコマンドで教えてください カレントディレクトリとそれ以下の階層全てのサブフォルダ内にある*.jpgというファイルを削除するにはどうすればいいでしょうか? よろしくお願いします

  • ルートディレクトリをchmodコマンドで変更後の確認方法

    UNIXコマンドでルートディレクトリをchmodコマンドで変更後のパーミッションの確認コマンドを教えください。 [変更コマンド](例) rootでログイン chmod 400 $HOME 上記コマンド投入後、実際にパーミッションが変更されたかの 確認コマンドがあれば教えてください。

  • ディレクトリ削除 Dosコマンド

    DOS画面から、ディレクトリを消すとき、普通はRD コマンドとかを使うと思うんですが、それだと、サブディレクトリがあると消せませんよね? サブディレクトリがいくつもある場合、そのルートごと削除するDOSコマンドはないでしょうか。 また、ファイルがあっても大丈夫でしょうか。