Jak wykonać rekursywnie chmod
lub chown
dla ukrytych plików?
sudo chmod -R 775 *
nie działa na ukrytych plikach.
To samo dotyczy sudo chown -R user:group
.
Jak wykonać rekursywnie chmod
lub chown
dla ukrytych plików?
sudo chmod -R 775 *
nie działa na ukrytych plikach.
To samo dotyczy sudo chown -R user:group
.
Odpowiedzi:
Jeśli jesteś w porządku, chmoduj bieżący katalog, zrób to i pozwól -R
zrób ciężkie podnoszenie. -R
nie ignoruje ukrytych plików.
sudo chmod -R 775 .
ls
jest nie do przyjęcia; próbując go przeanalizować, prosi o kłopoty. Właściwym podejściem jest użycie globulacji powłoki.
sudo chmod 775 -R
pójdzie do góry, więc trzymaj się tej odpowiedzi.
*
domyślnie nie zawiera ukrytych plików, ale jeśli jesteś w bashu, możesz to zrobić za pomocą:
shopt -s dotglob
Przeczytaj więcej na ten temat w bash builtin
podręcznik :
Jeśli jest ustawiony, Bash zawiera nazwy plików zaczynające się od `. ' w wyniku rozszerzenia nazwy pliku.
To sprawi *
także ukryte pliki.
chmod -R 775 *
Wyłącz go za pomocą:
shopt -u dotglob
zsh
?
(D)
kwalifikator globowania, np. chmod -R 775 *(D)
Wszystkie pliki w bieżącym katalogu, rekurencyjnie, w tym ukryte pliki:
chmod 755 -R ./* ./.[!.]*
Wszystkie pliki w bieżącym katalogu, nie rekurencyjnie, w tym ukryte pliki:
chmod 755 ./* ./.[!.]*
Nie zmieni to nazwy pliku wyjątku, począwszy od 2 kropek, na przykład, "./..thisonescapesunharmed.txt"
Uważaj też, aby nie usunąć bitu „x”, bo inaczej wszystkie twoje katalogi nie będą dostępne (potrzebny jest bit x, aby przejść do katalogu).
Zapamiętaj ten alert: nigdy nie używaj goły *
ale ./*
zamiast.
Aby uniknąć problemów z ustawieniem uprawnień do katalogów, użyj find
zamiast.
find . -type f -exec chmod `VALUE` {} \;
* .*
) nie jest najbezpieczniejszym sposobem na to. W szczególności będzie rekurencyjny do katalogu nadrzędnego, co oznaczachmod
s także rodzeństwo bieżącego katalogu. Właściwy byłby sposób* ..?* .[^.]*
lub nawet lepiej (biorąc pod uwagę, że symbole wieloznaczne mogą nie pasować do żadnych plików)$(ls -A)
.