Me estoy confundiendo un poco sobre cómo manejar los espacios en los nombres de ruta cuando se devuelven en un bucle for.
Justificación: estoy limpiando los permisos de las carpetas y archivos que copio desde Windows. La mayoría de los archivos terminan con -rwx------
o -rwxr-xr-x
permisos, así que me gusta hacer " chmod -x *
" y luego " chmod u+x <folders>
", así que estoy intentando lo siguiente:
$ 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, siempre que los directorios no tengan un espacio en el nombre.
He intentado diferentes permutaciones de chmod u+x "$i"
, chmod u+x '$i'
y similares para obtener el comportamiento que quería, pero fue en vano.
¿Cómo mejorar mi código de bash, que funciona con nombres de carpetas que contienen espacio?
El propósito de esto es poder eliminar el bit "exec" de los archivos simples (de ahí la parte chmod -x *
) pero luego restaurarlos en los directorios para permitir que entren en ellos ( %código%). A partir de los comentarios y respuestas hasta ahora, estoy pensando que probablemente será más fácil hacerlo con el conjuro de "encontrar" adecuado