Wygląda na to, że chown z flagą rekurencyjną nie działa na ukrytych katalogach lub plikach. Czy jest na to jakieś proste obejście?
37
Jestem pewien, że -R
flaga 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
w 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.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
źródło
„chown -R” działa, ale alternatywą byłoby użycie find.
źródło
+
zamiast;
jako terminatora -exec będzie bardziej wydajne, ponieważ użyje minimalnej potrzebnej liczby widelców do wyświetlenia zamiast jednego rozwidlenia na plik / katalogMożesz
dotglob
tymczasowo zmienić atrybut, aby rozwinąć. pliki, a następnie przywróć go.Więcej informacji
dotglob
można znaleźć tutajźródło
Używając pętli for z
ls -A
opcji, możemy znaleźć wszystkie ukryte pliki i katalog wykluczyć.
a..
, a następnie zmienić właściciela wszystkich ukrytych plików i katalogu.Użyj
xargs
opcji zls -A
Aby uzyskać więcej informacji, kliknij tutaj i odwiedź moją stronę
źródło
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.źródło
chown
bę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
,.profile
etc.) i foldery na tym~/some/folder
poziomie i poniżej. Zwróć uwagę w szczególności, że nie chcemy zmieniać prawa własności~/some
i dlatego wykluczymy plik~/some/..
ze zmian własności.źródło
Aby wyświetlić WSZYSTKIE pliki w bieżącym katalogu i podkatalogach dla bieżącego użytkownika;
lub jeśli użytkownik nie może zmienić niektórych plików z powodu ograniczonych uprawnień;
źródło
Możesz zrobić coś takiego
-A
( Kapitał A) jest ważna, ponieważ wyklucza „” i '..'źródło