Usa chown opzione ricorsiva di:
chown -R owner:group * .[^.]*
Specificando entrambi * e .[^.]* corrisponderà a tutti i file e le directory che find voluto. Il separatore consigliato al giorno d'oggi è : invece di . . (Come sottolineato da justins, usando .* non è sicuro poiché può essere espanso per includere . e .. , risultando in chown cambiando la proprietà della directory principale e di tutte le sue sottodirectory.)
Se vuoi cambiare anche la proprietà della directory corrente, questo può essere semplificato in
chown -R owner:group .
Per comandi come chown che hanno la loro ricorsione è più veloce usare questa opzione:
chown -R owner:group * .[^.]*
Avvertimento! In alcune shell, la forma chown -R owner:group * .* sostituisce il proprietario nella directory principale / . Perché .* significa ../../../../root, ../bin ... etc . Tutti i percorsi. Tuttavia, la shell più utilizzata, bash , non applica . e .. , modelli in espansione.
Tuttavia è utile sapere che il problema principale che rallenta l'utilizzo di find è che invochi chmown su ogni singola directory e file trovato. È molto più veloce da usare:
find . -type f -exec chown <owner>:<group> {} +
find . -type d -exec chown <owner>:<group> {} +
come ogni volta chown viene chiamato con tutti i parametri che si adattano alla riga di comando.
Questa modifica funziona per altri comandi, che non hanno un'opzione di ricorsione incorporata come chown , anche. E funziona (e migliora la velocità) in situazioni in cui esiste una tale opzione di ricorsione ma non puoi usarla (ad esempio quando usi chmod e vuoi solo cambiare directory).