¿Cómo ejecuto recursivamente chmod
o chown
para archivos ocultos?
sudo chmod -R 775 *
No funciona en archivos ocultos.
Lo mismo vale para sudo chown -R user:group
.
Si está bien también modificando el directorio actual, haga eso y deje que -R
haga el trabajo pesado. -R
No ignora los archivos ocultos.
sudo chmod -R 775 .
* .*
) no es la forma más segura de hacerlo. Particularmente, volvería a aparecer en el directorio principal, lo que significa quechmod
también son hermanos del directorio actual. La forma correcta sería* ..?* .[^.]*
o, incluso mejor (teniendo en cuenta que los comodines podrían no coincidir con ningún archivo)$(ls -A)
.ls
es analizable; tratar de analizarlo es pedir problemas. El enfoque adecuado es usar el engrosamiento de conchas.sudo chmod 775 -R
iría hacia arriba, así que siga con esta respuesta .*
no incluye archivos ocultos por defecto, pero si estás en bash, puedes hacerlo con:Lea más sobre esto en el
builtin
manual de bash :Esto hará que también
*
incluya archivos ocultos.Desactívelo con:
fuente
zsh
?(D)
calificador global, por ejemplochmod -R 775 *(D)
Otra opción es usar
find
me gusta, ya que puede tener un control muy fino sobre él.El único inconveniente es que
find
tiene una sintaxis diferente en diferentes versiones.fuente
Todos los archivos en el directorio actual, recursivamente, incluidos los archivos ocultos:
Todos los archivos en el directorio actual, no recursivamente, incluidos los archivos ocultos:
Esto no cambiará un nombre de archivo de excepción que comience con 2 puntos, por ejemplo,
"./..thisonescapesunharmed.txt"
Además, tenga cuidado de no eliminar el bit "x", de lo contrario no se podrá acceder a todos sus directorios (se necesita el bit x para cd en un directorio).
Recuerde esta alerta: nunca use bare
*
sino en su./*
lugar.Para evitar problemas al establecer permisos en directorios, use
find
en su lugar.fuente