Risposte:
Sono abbastanza sicuro che la -R
bandiera funzioni - lo è sempre per me. Ciò che non funzionerà e ciò che mi ha fatto scattare all'inizio del mio utilizzo da riga di comando, è l'utilizzo *
in una directory con file / directory nascosti. Così facendo
$ chown -R /home/user/*
non eseguirà i file e le directory nascosti. Tuttavia se lo segui con
$ chown -R /home/user/.[^.]*
allora farai tutti i file nascosti, (ma non .
o ..
come /home/user/.*
faresti). Detto questo, mi sarei aspettato
$ chown -R /home/user
per ottenere tutti i file e le directory nascosti all'interno /home/user
, anche se ovviamente ciò cambierà anche le autorizzazioni della directory stessa, che potrebbe non essere ciò che intendevi.
chown nginx:nginx -R /path/to/.[^.]*
e ha cambiato solo la proprietà in file nascosti .dot. non tutto.
*
e seguirlo .[.^]*
per ottenere tutti i file.
credo che il seguente comando dovrebbe funzionare per questo
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
"chown -R" funziona, ma un'alternativa sarebbe usare find.
find /path/to/dir -exec chown USER {} \;
+
posto di ;
come terminatore di -exec sarà più efficiente in quanto utilizzerà il numero minimo necessario di forcelle per chown invece di un fork per file / directory
Usando per-ciclo con ls -A
l'opzione, possiamo trovare tutti i file nascosti e directory escludere .
e ..
quindi modificare la proprietà per tutti i file nascosti e le directory.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Usa l' xargs
opzione conls -A
ls -A | grep "^\." | xargs chown user:group
Per maggiori dettagli Fare clic qui e visitare il mio sito
Inoltre, se sei come me, probabilmente eseguirai chown principalmente dalla directory corrente. Ero abituato a correre in questo modo: chown rails.rails -R *
. Semplicemente cambiando l'asterisco in un punto (abbreviazione della directory corrente) in questo modo: chown rails.rails -R .
porta in tutte le directory nascoste.
chown
funzionerà con file e directory nascosti. Nel seguente esempio, cambieremo la proprietà dell'utente e del gruppo per tutti i file in ~/some/folder
. Tutti i file includono tutti i file nascosti (ad esempio .bashrc
, .profile
ecc.) E le cartelle a ~/some/folder
livello e sotto. Si noti in particolare che non desideriamo cambiare la proprietà di ~/some
, quindi escluderemo il file ~/some/..
dalle modifiche di proprietà.
$ cd ~/some/folder
$ sudo chown -R usrname:grpname .
$
Potresti fare qualcosa del genere
for i in `ls -A`;do chown -R user:group $i;done
La -A
( maiuscola A) è importante in quanto esclude "." e '..'
chown
directory ha l'effetto collaterale di modificare le autorizzazioni sulla directory stessa e tutto il suo contenuto, che può essere o meno ciò che si desidera.