Come eseguire in modo ricorsivo chmodo chownper 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 chmodo chownper 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 -Rfare il sollevamento pesante. -Rnon 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 -Randrebbe 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 builtinmanuale 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 findmi 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 findha 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 findinvece.
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).