注意
投稿練習のため自身のweblogに投稿した内容(findでまとめてパーミッション変更 - hadacchi blog)を転載したものです.
課題
sambaでファイルサーバを運用している時に,別ユーザでのアクセスが問題になることがまれによくある.
なのでディレクトリは755に,ファイルは644にしたい.
find + chmod
# まとめてchmodに渡す.数が多いとコマンドの上限文字数を越える
$ find . -type d -exec chmod 755 {} +
# 1つずつchmodに渡す.数が多いとえらい時間がかかる
$ find . -type d -exec chmod 755 {} \;
find + xargs + chmod
# まとめてchmodに渡す.数が多いとコマンドの上限文字数を越える
$ find . -type d -print0 | xargs -0 chmod 755
# 20ずつまとめてchmodに渡す.上3つと比べるとマシ
$ find . -type d -print0 | xargs -0 -n 20 chmod 755
ちなみに,こちらの記事(ファイルやディレクトリのパーミッションを一括で置換したい - Qiita)のようにchmodだけでやる方法があるらしく,多分これが一番速い(試してないけど)