CHMOD ricorsivo su file o su cartelle

Spesso capita di dover cambiare gli attributi delle directory e delle sottodirectory (cartelle e sottocartelle) in maniera ricorsiva, applicando cioè le impostazioni a cascata su tutto l’albero delle directory a partire da un certo percorso.
In linux esiste un modo modo semplice per farlo, utilizzando un comando di una sola riga, ecco come:

Per cambiare i diritti soltanto alle directory:

find . -type d -exec chmod 755 {} \;

naturalmente al posto di 755 dovrete inserire i valori desiderati per i diritti di accesso

Per cambiare i diritti soltanto ai file:

find . -type f -exec chmod 644 {} \;

anche in questo caso al posto di 644 dovrete inserire i valori desiderati per i diritti di accesso

Vediamo nel dettaglio i parametri utilizzati:

“find .” dice di iniziare la ricerca dalla directory corrente
“-type d” dice di cercare soltanto le directory (nel caso di “-type f” verranno cercati solo i file
“-exec chmod {}” dice di eseguire il comando chmod sul file o sulla directory trovata (rappresentati dalla coppia di parentesi graffe)
“\;” dice a find che il comando è finito. Bisogna usare il carattere di escape “\” (backslash) perchè senza di esso il punto e virgola verrebbe interpretato e “mangiato” dalla shell prima di essere letto da find.

Link originale


Comments are closed.