web-dev-qa-db-ja.com

ディレクトリに影響を与えることなく、findを使用してすべてのファイルを再帰的に実行不能にする方法は?

特定のディレクトリとサブディレクトリ内のすべてのファイルから実行可能フラグを取り除く必要があります。今私は2ステップのプロセスでそれをやっています

find /dir/ -type f -exec chmod ugo-x {} \;
find /dir/ -type d -exec chmod ugo+rx {} \;

ディレクトリ以外のすべてのファイルからexecフラグを削除できるように、最初の行を変更することはできますか?これは多くのディレクトリとファイルにわたってかなり定期的に実行する必要があるため、速度が低下するbashスクリプトを使用したくありません。

4
wting
find ... '!' -type d ...