Jak v Bashi nastavit atributy pomocí chmod rekurzivně zvlášť pro soubory a zvlášť pro adresáře?
chmod
sice má parametr -R
, který projde všechny podadresáře a soubory v nich, ale neumí nastavit něco jiného adresářům a jiného souborům. Tady je několik příkladů, jak to provézt v kombinaci s příkazem find
:
755 pro adresáře a všechny podadresáře
find . -type d -exec chmod 755 {} \;644 pro soubory v tomto adresáři a ve všech jeho podadresářích
find . -type f -exec chmod 644 {} \;Najdi všechny soubory *.sh v aktuálním adresáři a všech podadresářích a nastav jim práva 755 (čtení a spustitlenost pro všechny, zápis jen pro majitele)
find . -type f -name "*.sh" -exec chmod 755 {} \;Líbil se vám článek?
Nestačilo by např.:
chmod -R g+rwX foo
Nastaví u práva pro čtení a zápis a souborů i adresářů (to velké X)Pro tento konkrétní případ ano. Ale tenhle článek byl právě o tom, jak využít příkaz find, když chci práva nastavovat jen pro soubory nebo jen pro adresáře.