Pregunta:
Quiero escribir un script .sh para configurar algunos permisos de carpeta, pero me preguntaba si puedo ejecutar algo como:
chown -644 ./one;/two;/three
chown para una lista de carpetas, en lugar de llamar a chown varias veces.
Además, ¿habría una forma de seleccionar una lista de archivos y excluir algunos otros, como por ejemplo:
chown -R -664 ./*;!./cache
Espero que mis pseudo líneas de comando tengan sentido.
Respuesta:
Casi todas las herramientas de Unix aceptan una lista de archivos como argumentos sin opciones. Como es habitual, los diferentes argumentos deben estar separados por un espacio:
chmod 644 one two three
En su segundo ejemplo, si usa Bash, un simple
chmod -R 644 !(cache)
será suficiente.
Este enfoque requiere una mayor coincidencia de patrones. Si está deshabilitado, puede habilitarlo con
shopt -s extglob
Ver: Manual de referencia de Bash # Coincidencia de patrones