追記 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
に関数を登録しておくのも便利かもしれません。
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 {} +
が実行されるようになります。