検索を使用:
find . -name "*.sh" -exec chmod +x {} \;
find と xargs の見事な組み合わせを試してみてください。
find . -iname \*.sh -print0 | xargs -r0 chmod +x
. 開始するディレクトリです。この場合は作業ディレクトリです。
find の最新バージョンで 、あなたは xargs の利点を得る コマンドへの複数の呼び出しを回避するアプローチ (chmod )。コマンドはわずかに異なります。
find . -name "*.sh" -exec chmod +x {} +
find からの抜粋 Arch 2015.09.01 のドキュメント (強調 私が追加):
-exec command {} +
-exec のこの変種 アクションは、選択されたファイルに対して指定されたコマンドを実行しますが、コマンド ラインは、選択された各ファイル名を最後に追加することによって構築されます。コマンドの呼び出しの総数は、一致したファイルの数よりもはるかに少なくなります .コマンドラインは xargs とほぼ同じ方法で構築されています コマンドラインをビルドします。 {} の 1 つのインスタンスのみ コマンド内で使用できます。コマンドは開始ディレクトリで実行されます。