Odpowiedzi:
Jestem pewien, że -Rflaga działa - i tak zawsze dla mnie działa. Co nie zadziała i co mnie potknęło na początku korzystania z wiersza poleceń, to używanie *w katalogu z ukrytymi plikami / katalogami. Tak robię
$ chown -R /home/user/*
nie zrobi ukrytych plików i katalogów. Jeśli jednak zastosujesz się do niego
$ chown -R /home/user/.[^.]*
wtedy zrobisz wszystkie ukryte pliki (ale nie .lub ..tak /home/user/.*, jak by to zrobiło). Powiedziawszy to wszystko, oczekiwałbym
$ chown -R /home/user
aby umieścić wszystkie ukryte pliki i katalogi w środku /home/user- choć to oczywiście zmieni również uprawnienia do samego katalogu, co może nie być tym, czego zamierzałeś.
chown nginx:nginx -R /path/to/.[^.]*i zmieniłem tylko własność na ukryte pliki .dot. nie wszystko.
*i postępować zgodnie z nimi, .[.^]*aby uzyskać wszystkie pliki.
uważam, że następujące polecenie powinno działać w tym celu
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
„chown -R” działa, ale alternatywą byłoby użycie find.
find /path/to/dir -exec chown USER {} \;
+zamiast ;jako terminatora -exec będzie bardziej wydajne, ponieważ użyje minimalnej potrzebnej liczby widelców do wyświetlenia zamiast jednego rozwidlenia na plik / katalog
Używając pętli for z ls -Aopcji, możemy znaleźć wszystkie ukryte pliki i katalog wykluczyć .a .., a następnie zmienić właściciela wszystkich ukrytych plików i katalogu.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Użyj xargsopcji zls -A
ls -A | grep "^\." | xargs chown user:group
Aby uzyskać więcej informacji, kliknij tutaj i odwiedź moją stronę
Ponadto, jeśli jesteś podobny do mnie, prawdopodobnie uruchomisz chown głównie z bieżącego katalogu. Byłem przyzwyczajony do działa to tak: chown rails.rails -R *. Wystarczy zmienić gwiazdkę na kropkę (skrót od bieżącego katalogu) w ten sposób: chown rails.rails -R .wyświetla wszystkie ukryte katalogi.
chownbędzie działać z ukrytymi plikami i katalogami. W poniższym przykładzie zmienimy własność użytkownika i grupy dla wszystkich plików w ~/some/folder. Wszystkie pliki obejmuje wszystkie ukryte pliki (np .bashrc, .profileetc.) i foldery na tym ~/some/folderpoziomie i poniżej. Zwróć uwagę w szczególności, że nie chcemy zmieniać prawa własności ~/somei dlatego wykluczymy plik ~/some/..ze zmian własności.
$ cd ~/some/folder
$ sudo chown -R usrname:grpname .
$
Możesz zrobić coś takiego
for i in `ls -A`;do chown -R user:group $i;done
-A( Kapitał A) jest ważna, ponieważ wyklucza „” i '..'
chownw katalogu powoduje efekt uboczny polegający na zmianie uprawnień do samego katalogu, a także całej jego zawartości, co może być lub nie być tym, czego chcesz.