指定したパーミッションのファイルを変更する、一気に

探すのはfind、リスト実行するxargs、変更はchmod

$ find <path> -perm /a+x | xargs chmod -x
permオプション

aは全部。uユーザー、gグループ、oその他。 または数字で指定644

/は何れか、-は全てにマッチ。

/a+x/111でユーザー、グループ、その他の何れかに実行許可があるファイルを探す。

-a+x-111でユーザー、グループ、その他の全てがxなファイルを探す。

リスト実行

対象のファイルを確認したければls -lしてみる。

$ finx <path> -perm /a+x | xargs ls -l
やってやったぜ

なぜか無用に+xになってるファイルを-xした。

$ find . -perm /a+x -name *.h   \
     -or -perm /a+x -name *.c   \
     -or -perm /a+x -name *.cpp
     | xargs chmod -x

findの複数検索条件をもっとちょっとスマートに書けないの?


-exec {} ;よりxargsが推奨みたい qiita.com

こっちの方がスマート? qiita.com


www.atmarkit.co.jp