Creo que estoy bastante avanzado en mi uso de find, pero CADA vez que lo uso no puedo recordar toda la vida el método para cerrar la opción -exec. Paso mucho tiempo leyendo cada vez que lo uso. ¿Simplemente no lo estoy usando lo suficiente o espero demasiado de mí mismo? Comencemos con un ejemplo típico que me frustra.
La estructura del directorio tiene archivos con todos los permisos incorrectos, archivos ocultos, enlaces simbólicos, etc. Quiero cambiar la propiedad a un valor razonable
find . -type f -exec chown username {} \;
find . -type d -exec chown username {} \;
find . -type d -exec chgrp usergroup {} \;
find . -type f -exec chgrp usergroup {} \;
(Perdóname si el final es al revés ... Lo miré hace una hora y aún no estoy seguro)
Pero tengo miedo de ejecutarlo debido a monturas, enlaces simbólicos, etc. He hecho el mejor truco de chmod. * Y tuve que recurrir hacia arriba antes. Sé que -xdev renunciará a cruzar particiones, pero no estoy seguro de qué pasará con los archivos que se encuentran dentro de directorios que son enlaces simbólicos.
Entonces, ¿cómo se domina a esta bestia que puede matar archivos cruciales?
Actualice podando las mejores sugerencias a continuación y resumiendo:
- Tener un directorio de práctica vinculado y montado a otros directorios de práctica.
- Use xargs en lugar del comando exec no intuitivo.
- Use -exec echo {} por cordura y seguridad
- El punto y coma es especial y estás escapando, por lo tanto, el personaje de escape es el primero
- El comando -o puede ayudarlo a combinar criterios de selección.
Estoy un poco confundido acerca de print0 pero xargs siempre ha estado un poco en la práctica no fácil de entender a primera vista que intento evitar.