findでまとめてパーミッション変更

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

追記

ここ(ファイルやディレクトリのパーミッションを一括で置換したい - Qiita)のコメント欄の内容が神すぎたので自分でも忘れないよう転記.
この「X」しらんかった.

chmod -R a=rX,u+w path/to/dir

sambaでファイルサーバを運用している時に,別ユーザでのアクセスが問題になることがまれによくある
なのでディレクトリは755に,ファイルは644にしたい

基本

# まとめてchmodに渡す.数が多いとコマンドの上限文字数を越える
$ find . -type d -exec chmod 755 {} +
# 1つずつchmodに渡す.数が多いとえらい時間がかかる
$ find . -type d -exec chmod 755 {} \;

xargsとの組合せ

# まとめてchmodに渡す.数が多いとコマンドの上限文字数を越える
$ find . -type d -print0 | xargs -0 chmod 755
# 20ずつまとめてchmodに渡す.上3つと比べるとマシ
$ find . -type d -print0 | xargs -0 -n 20 chmod 755