Mit dem Befehl chmod -R 755 ./* können die Rechte von allen Dateien und Verzeichnissen im aktuellen und allen Unterverzeichnissen gesetzt werden.

Möchten wir nun jedoch die Rechte nur von Dateien oder nur von Verzeichnissen setzen hilft uns das Programm find weiter.

Im Folgenden zwei kleine Beispiele dazu.

Rechte nur bei Dateien setzen

find ./* -type f -exec chmod 644 {} \;

Rechte nur bei Verzeichnissen setzen

find ./* -type d -exec chmod 755 {} \;

Verwendung von ”xargs”

Bei Datei- oder Verzeichnisnamen, die Leerzeichen, Anführungszeichen oder Backslashs enthalten, kann es zu Fehlern kommen. Um dies zu vermeiden ist zusätzlich die Verwendung von xargs zu empfehlen:

find ./* -type f -print0 | xargs -0 chmod 644

Der Parameter -print0 bei bewirkt, dass find jedes gefundene Element mit einem Nullbyte abschließt. Dieses Nullbyte wird von xargs durch den Parameter -0 verwendet um die Eingaben zu trennen und richtig an chmod weiterzugeben.

Siehe auch

Für weitere Informationen zu den einzelnen Programmen siehe:

man chmod
man find
man xargs