330
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

ファイルやディレクトリのパーミッションを一括で置換したい

追記 2015/01/09 13:00

コメントで、さらにスマートな書き方をお教えいただきました。ありがとうございます!

追記 2015/01/10 02:20

更にコメントで、そもそもfindを使わずchmodだけで実現する方法をお教えいただきました!qiita、すごいです。


例えば、/path/to/dir以下のディレクトリのパーミッションを変更したいとき、

chmod -R 755 /path/to/dir

などとやると、/path/to/dir以下にあるディレクトリはもちろん、ファイルのパーミッションまで755になってしまいます。644にすると、ディレクトリも644になってしまって困ります。手動でディレクトリのパーミッションだけ直すのも何だかスマートではありません。

ディレクトリは755、ファイルは644に一発で置換したい、というときはこんなのがよい、とこちらの記事のコメントで紹介されておりました。

find /path/to/dir -type d -exec chmod 755 {} +
find /path/to/dir -type f -exec chmod 644 {} +

なるほど。あと、よく使うのであれば、~/.bashrcに関数を登録しておくのも便利かもしれません。

.bashrc
function chmod-r(){
  find $1 -type $2 -exec chmod $3 {} +
}

chmod-rの部分は他のコマンドとかぶらなければお好みで構わないのですが、chmod-r /path/to/dir d 755などと入力すると、find /path/to/dir -type d -exec chmod 755 {} +が実行されるようになります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
330
Help us understand the problem. What are the problem?