usa buscar:
find . -name "*.sh" -exec chmod +x {} \;
Intenta usar la gloriosa combinación de find con xargs.
find . -iname \*.sh -print0 | xargs -r0 chmod +x
El . es el directorio para comenzar, en este caso el directorio de trabajo.
Con versiones modernas de find , obtienes los beneficios de un xargs enfoque que evita múltiples llamadas al comando (chmod ). El comando es solo ligeramente diferente.
find . -name "*.sh" -exec chmod +x {} +
Recortar desde find docs en Arch 2015.09.01 (énfasis añadido por mí):
-exec command {} +
Esta variante del -exec action ejecuta el comando especificado en los archivos seleccionados, pero la línea de comando se construye agregando cada nombre de archivo seleccionado al final; el número total de invocaciones del comando será mucho menor que el número de archivos coincidentes . La línea de comando está construida de la misma manera que xargs construye sus líneas de comando. Solo una instancia de {} está permitido dentro del comando. El comando se ejecuta en el directorio de inicio.