Me estoy poniendo un poco confundido acerca de cómo manejar los espacios en los nombres de ruta de acceso cuando se devuelve en un bucle for.
Justificación: yo soy la limpieza de los permisos en las carpetas y archivos que tengo que copiar de Windows. La mayoría de los archivos terminan con -rwx------
o -rwxr-xr-x
permisos por lo que me gusta hacer "chmod -x *
" y "chmod u+x <folders>
" así que estoy tratando de los siguientes:
$ alias getdirs='find . -maxdepth 1 -mindepth 1 -type d | cut -c 3-'
$ for i in $(getdirs); do chmod u+x $i; done
que funciona bien, con tal de que los directorios no tienen un espacio en el nombre.
He intentado varias permutaciones de chmod u+x "$i"
, chmod u+x '$i'
y similares para obtener el comportamiento que yo quería, pero fue en vano.
Cómo mejorar mi código bash, que trabaja con los nombres de carpeta que contiene el espacio?
El propósito de esto es para ser capaz de eliminar el "exec" bits de archivos planos (de ahí el chmod -x *
parte), pero luego para restaurar los directorios a permitir entrar en ellos (chmod u+x <dirname>
). A partir de los comentarios y respuestas, así que ahora estoy pensando que probablemente será más fácil hacerlo con el propio "encontrar" el conjuro