Come eseguire in modo ricorsivo chmod
o chown
per file nascosti?
sudo chmod -R 775 *
non funziona su file nascosti.
Lo stesso vale per sudo chown -R user:group
.
Come eseguire in modo ricorsivo chmod
o chown
per file nascosti?
sudo chmod -R 775 *
non funziona su file nascosti.
Lo stesso vale per sudo chown -R user:group
.
Risposte:
Se stai bene anche chmod'ing la directory corrente, fallo e lascia -R
fare il sollevamento pesante. -R
non ignora i file nascosti.
sudo chmod -R 775 .
ls
è analizzabile; cercare di analizzarlo richiede problemi. L'approccio corretto consiste nell'utilizzare il globbing delle coperture.
sudo chmod 775 -R
andrebbe a pancia in su, quindi atteniti a questa risposta .
*
non include i file nascosti per impostazione predefinita, ma se sei in bash, puoi farlo con:
shopt -s dotglob
Leggi di più a riguardo nel builtin
manuale di bash :
Se impostato, Bash include i nomi di file che iniziano con un `. ' nei risultati dell'espansione del nome file.
Ciò renderà *
inclusi anche i file nascosti.
chmod -R 775 *
Disabilita con:
shopt -u dotglob
zsh
?
(D)
qualificatore chmod -R 775 *(D)
Un'altra opzione è usare find
mi piace poiché puoi avere un controllo molto preciso su di esso.
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
L'unico aspetto negativo è che find
ha una sintassi diversa su versioni diverse.
Tutti i file nella directory corrente, ricorsivamente, compresi i file nascosti:
chmod 755 -R ./* ./.[!.]*
Tutti i file nella directory corrente, non ricorsivamente, compresi i file nascosti:
chmod 755 ./* ./.[!.]*
Ciò non cambierà un nome file di eccezione che inizia con 2 punti, ad esempio, "./..thisonescapesunharmed.txt"
Inoltre, fai attenzione a non rimuovere il bit "x", altrimenti tutte le tue directory non saranno accessibili (è necessario il bit x per eseguire il cd in una directory).
Ricorda questo avviso: non usare mai nudo *
ma ./*
invece.
Per evitare problemi durante l'impostazione delle autorizzazioni per le directory, utilizzare find
invece.
find . -type f -exec chmod `VALUE` {} \;
* .*
) non è il modo più sicuro per farlo. In particolare, ricorrerebbe alla directory principale, il che significa chechmod
è anche fratelli della directory corrente. Il modo corretto sarebbe* ..?* .[^.]*
o, ancora meglio (considerando i caratteri jolly potrebbe non corrispondere a nessun file)$(ls -A)
.