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.