Sie können die und-oder-Struktur des find
Ausdruckssystems dazu nutzen:
find /share/Multimedia/ -type f -exec chmod 644 {} \; -o -type d -exec chmod 755 {} \;
Dies hat im Wesentlichen die folgende Logik:
IF: the item is a plain file AND the chmod 644 command succeeds on it OR the item is a directory AND the chmod 755 command succeeds on it THEN ... well, do nothing; normally it'd print the item's path, but since there's a -exec in the expression, that gets skipped
Es gibt jedoch einen wesentlich einfacheren Weg:
chmod -R u=rwX,go=rX /share/Multimedia/
Dies nutzt die chmod
Berechtigung "X", was "Ausführen" bedeutet, aber nur, wenn es sinnvoll ist. Meistens bedeutet dies, dass es für Verzeichnisse ausgeführt wird, nicht jedoch für einfache Dateien. Das hauptsächliche potenzielle Problem besteht darin, dass wenn eine Ausführungsberechtigung für eine einfache Datei angezeigt wird, es beabsichtigt ist und beibehalten wird, so dass diese nicht bereinigt wird, nachdem jemand alles durchlaufen hat und Ausführungsberechtigung zugewiesen hat.