¿Comando para realizar un chmod recursivo para hacer que todos los archivos .sh dentro de un directorio sean ejecutables?

13

Intentando realizar un chmod recursivo en todos los archivos .sh en un directorio para hacerlos ejecutables

Arunava
fuente
Mira findy tal vez xargs.
fkraiem

Respuestas:

25

Para hacer esto posible, puede usar el findcomando y buscar todos los archivos con una .shextensión y luego ejecutar el chmodcomando en cada uno encontrado:

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;

Información:

  1. -type f: Solo archivos normales (omitir directorios, enlaces simbólicos, canalizaciones con nombre y sockets, y los archivos especiales que se encuentran en / dev)
  2. -iname: Ignorar mayúsculas y minúsculas en el nombre
  3. "*.sh": Globbing, diciéndole al findcomando que busque archivos con la extensión ".sh"
  4. -exec chmod +x {}: Esto le dice al findcomando que ejecute un chmodcomando en cada archivo encontrado. Hacer cada ejecutable
  5. \;: Indicando el fin del comando
George Udosen
fuente