¿Cómo cambiar los permisos de múltiples archivos encontrados con el comando find?


11

Tengo un directorio con numerosos archivos. Parte de los archivos tiene los 755permisos y la otra parte tiene 644permisos. Me gustaría convertir los archivos con 755permisos a 644. He intentado la siguiente línea ejecutándola desde el directorio:

find . -perm 755 -exec chmod 644 {}\;

Sin embargo, como resultado, el permiso cambió solo para el directorio en sí y después de cambiarlo nuevamente, descubrí que los permisos de los archivos permanecieron sin cambios. ¿Echo de menos algo?


Su comando elimina el bit ejecutable del directorio, lo que hace que sea imposible acceder a él y ver los archivos que contiene. Es por eso que el comando no parece estar funcionando. Intenta en su find ./ -type f -exec chmod -x {} \;lugar.
Shadur

Respuestas:


16

Ok, parece que he encontrado el problema. Parece que debe haber un espacio obligatorio entre {}y \;, por lo que el comando se verá así:

find . -perm 755 -exec chmod 644 {} \;

Más bien que:

find . -perm 755 -exec chmod 644 {}\;

Además, el problema con el cambio de los permisos del directorio se puede resolver agregando un -type findicador, por lo que se verá de la siguiente manera:

find . -type f -perm 755 -exec chmod 644 {} \;

55
Puede usar en +lugar de \;reducir la cantidad de subprocesos creados.
Kevin

-type dEncontrará directorios. -type fencontrará archivos
Mick T
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.