¿Cómo aplicar directorios chmod recursivamente sin afectar los archivos?

18

Después de aplicar chmod -Ra un directorio, se cambian los permisos para todo lo que contiene (archivos y directorios). ¿Cómo puedo agregar xpermisos de ejecución / búsqueda ( ) a directorios sin modificar los archivos?

Ivan
fuente

Respuestas:

13

Puedes usar find .

find ./ -type d -execdir chmod 750 {} +

Donde 750 es el modo que le gustaría aplicar y "./" es el directorio en el que buscará recursivamente.

EDITAR : Gracias a @Gilles y find (1) , he revisado esto para mayor seguridad y rendimiento.

ewindisch
fuente
@Gilles Gracias, no es demasiado frecuente que aprendo algo nuevo sobre las herramientas de Unix :-) Eso es increíble. Además, ahora que lee la documentación de búsqueda , en realidad debería usar -execdir.
ewindisch
7

En este caso particular, puede usar en Xlugar de lo xque solo agrega los bits a los directorios o archivos que ya tienen el bit ejecutable establecido para algún usuario (es decir chmod -R +X my_dir).

En general (por ejemplo, si desea que todos los directorios sean legibles sin afectar los archivos), puede usar findcon -type do si está usando zsh (o bash 4 con shopt -s globstar) el **/globo (ambos sin pasar el -Rindicador a chmod).

sepp2k
fuente
@Gilles: Buen punto, lo he agregado a la respuesta.
sepp2k
1
"use X en lugar de x, que solo agrega los bits a directorios o archivos que ya tienen el bit ejecutable establecido para algún usuario" - ¡Gracias! ¡He extrañado mucho esto!
Ivan