¿Cómo cambio de permisos de archivo a un determinado patrón de archivo a las subcarpetas de mi directorio actual?

StackOverflow https://stackoverflow.com/questions/4249878

Pregunta

El uso de chmod, hago chmod +x *.sh en el directorio actual, pero lo que si quiero cambiar todos los archivos incluidos los archivos dentro de las subcarpetas que tiene una extensión de archivo sh?.

chmod +x -R * funcionará pero necesito algo más parecido a chmod +x -R *.sh

¿Fue útil?

Solución

encuentran uso:

find . -name "*.sh" -exec chmod +x {} \;

Otros consejos

Trate de usar la combinación gloriosa de encontrar con xargs.

find . -iname \*.sh -print0 | xargs -r0 chmod +x

El . es el directorio para iniciar en, en este caso, el directorio de trabajo.

Con las versiones modernas de find , obtendrá los beneficios de un enfoque que evite xargs varias llamadas a la orden (chmod). El comando es sólo ligeramente diferente.

find . -name "*.sh" -exec chmod +x {} +

Snip de find docs en Arco 01/09/2015 ( énfasis agregado por mí):

  

-exec command {} +

     

Esta variante del recurso -exec ejecuta el comando especificado en los archivos seleccionados, , pero la línea de comandos se construye añadiendo el nombre de cada 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 comandos se construye de la misma manera que xargs construye sus líneas de comando. Sólo se permite una instancia de {} dentro del comando. El comando se ejecuta en el directorio de inicio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top