Sto diventando un po 'confuso su come gestire gli spazi nei nomi dei percorsi quando vengono restituiti in un ciclo for.
Razionale: sto pulendo le autorizzazioni su cartelle e file che copio da Windows. La maggior parte dei file finisce con -rwx------
o -rwxr-xr-x
permessi quindi mi piace fare " chmod -x *
" e poi " chmod u+x <folders>
", quindi sto provando il seguente:
$ alias getdirs='find . -maxdepth 1 -mindepth 1 -type d | cut -c 3-'
$ for i in $(getdirs); do chmod u+x $i; done
che funziona bene, purché le directory non abbiano uno spazio nel nome.
Ho provato diverse permutazioni di chmod u+x "$i"
, chmod u+x '$i'
e simili per ottenere il comportamento che volevo, ma senza risultato.
Come migliorare il mio codice bash, che funziona con i nomi delle cartelle contenenti spazio?
Lo scopo di questo è quello di essere in grado di rimuovere il bit "exec" dai file semplici (da cui la parte chmod -x *
) ma poi di ripristinarlo nelle directory per consentire di entrare in loro ( %codice%). Dai commenti e dalle risposte fino ad ora penso che probabilmente sarà più facile fare con l'incantesimo "trova" appropriato