Chcete-li udělit oprávnění ke spuštění (vyhledávání) adresářům, ale ne souborům, použijte:
chmod -R +X .
Chcete-li přiřadit všechna oprávnění jako ve vašem příkladu, použijte:
chmod -R u=rwX,g=rX,o= .
-R
mění soubory a adresáře rekurzivně, zatímco +X
nastaví provést/vyhledat pouze v případě, že soubor je adresář nebo již má oprávnění ke spuštění pro některého uživatele. r
a w
jsou samozřejmě pro čtení a psaní.
Režim X
(horní x ) je zdokumentován jak na tradiční manuálové stránce, tak v informační dokumentaci.
Mělo by také fungovat na jiných systémech podobných Unixu, např. FreeBSD, NetBSD nebo OpenBSD. Citace z manuálové stránky chmod(1) The Open Group Base Specifications Issue 7, 2018 edition:
X perm symbol byl převzat ze systémů založených na BSD, protože poskytuje běžně požadovanou funkcionalitu při provádění rekurzivní (-R možnost) úpravy. Podobnou funkci nenabízí najít utility. Historické verze BSD chmod , však podporuje pouze X s op +; byl rozšířen v tomto svazku POSIX.1-2017, protože je také užitečný s op =. (Bylo také přidáno pro op - i když duplikuje x , v tomto případě proto, že je intuitivní a snadněji vysvětlitelný.)
man 1 chmod
info '(coreutils)Conditional Executability'
Pokud to chcete udělat rekurzivně, tj. , do adresářů v adresářích v adresářích, příkaz k použití je:
find /path/to/starting/directory -type d -exec chmod +x {} \;
To vyhledá všechny a pouze podadresáře (-type d flag) adresáře /cesta/k/spouštěcímu/adresáři a poté provede požadovanou změnu oprávnění ke spuštění pro každý z nich. Mezera před \; je povinná.