použijte najít:
find . -name "*.sh" -exec chmod +x {} \;
Zkuste použít skvělou kombinaci find s xargs.
find . -iname \*.sh -print0 | xargs -r0 chmod +x
. je adresář, ve kterém se má začít, v tomto případě pracovní adresář.
S moderními verzemi find , získáte výhody xargs přístup, který se vyhýbá vícenásobnému volání příkazu (chmod ). Příkaz se jen mírně liší.
find . -name "*.sh" -exec chmod +x {} +
Výstřižek z find docs on Arch 2015.09.01 (důraz přidáno mnou):
-exec command {} +Tato varianta
-execaction spustí zadaný příkaz na vybraných souborech, ale příkazový řádek se vytvoří připojením každého vybraného názvu souboru na konec; celkový počet vyvolání příkazu bude mnohem menší než počet shodných souborů . Příkazový řádek je vytvořen v podstatě stejným způsobem jakoxargsvytváří své příkazové řádky. Pouze jedna instance{}je povoleno v rámci příkazu. Příkaz se provede v počátečním adresáři.