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
-exec
action 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 jakoxargs
vytváří 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.