次のように、ディレクトリを再帰的にchmodしたいと思います。
それをより良く、より短く、より空想的にする方法は? :)たぶん、どういうわけかumaskを使用しますか?
すべてのfind
ソリューションが長すぎます:私は常にコピーアンドペーストで終わります:)
Chmodのバージョンによっては、次のことができる場合があります。
chmod -R . ug+rwX,o+rX,o-w
capital Xに注意してください。これにより、実行ビットのいずれかがすでに設定されているディレクトリおよびファイルに実行可能ビットが設定されます。
大文字のXは「+」でのみ使用でき、「=」や「-」では使用できないことに注意してください。
何よりも良く、短く、空想?
cd /directory
find . -type d -exec chmod 0755 {} +
find . -type f -exec chmod 0664 {} +
ミックスにワンライナーを追加する
find -type f -exec chmod 0644 {} + -o -type d -exec chmod 0755 {} +
find /dir -type f -print0 |xargs -0 chmod 0644
find /dir -type d -print0 |xargs -0 chmod 0775
実際の環境で使用する前にテストしてください
私はこれをFATファイルシステムからコピーされたものすべてに使用しています。
chmod -R a-x+X .
Mac OS Xなどで機能しない場合は、GNUバージョンのコマンドchmod
:を試してください。
gchmod -R a-x+X .
あなたがこれをやろうとしている理由についてもっと知らずに、人々が使う傾向がある最も一般的な理由は次のいずれかです:
ファイルとディレクトリは他の書き込み可能です
chmod -R o-w /path/to/dir
ファイルとディレクトリはグループ書き込み可能ではありません
chmod -R g+w /path/to/dir
または、2つを組み合わせます。
chmod -R o-w,g+w /path/to/dir
または、ファイルとディレクトリにデフォルトで正しいアクセス許可を付与する場合は、作成プロセスのumask
を変更します。
基本的に、chmod
で数値モードを使用することが正しいのはまれな日です。通常、ディレクトリにはすでに実行可能ビットセットがあり、それを必要としないファイルにはそれが不足しているので、+
および-
演算子はそうする必要をなくしますか?