Odio tener que volver a escribir el nombre del archivo chmod +x y el insecto para ejecutarlo desde la terminal. ¿Cómo puedo configurar esto para todos los archivos .sh? He intentado inspeccionar y luego configurar manualmente la extensión
Respuesta
¿Demasiados anuncios?Usando un find
el comando sería bastante simple:
find . -iname "*.sh" -exec bash -c 'chmod +x "$0"' {} \;
El comando se descompone como
find
[¡Obvio!]
.
= de esta carpeta. Puedes poner una ruta en su lugar
-iname
= nombre sin mayúsculas y minúsculas
"*.sh"
= nombre de archivo comodín
-exec
= utilidad para ejecutar comandos
bash
= qué herramienta quieres usar (puedes usar sh
en su lugar)
-c
flag significa ejecutar el siguiente comando tal y como lo interpreta este programa.
chmod +x
= comando para cambiar el archivo a ejecutable
"$0"
= El valor que se pasó a la utilidad
{}
= Si la cadena {}
aparece en cualquier parte del nombre de la utilidad o de los argumentos que se sustituye por la ruta del archivo actual.
;
= Termina el comando