Benutzer-Werkzeuge

Webseiten-Werkzeuge


allgemeine-howtos:shellbefehle:chmod-rekursiv-nur-auf-dateien-oder-verzeichnisse-anwenden

chmod rekursiv nur auf Dateien ODER Verzeichnisse anwenden

Mit chmod -R xxx * werden bekanntlich die Rechte für alle Dateien und Verzeichnisse im aktuellen Verzeichnis und allen Unterverzeichnissen gesetzt.

Was nun, wenn nur Datei- oder Verzeichnisrechte geändert werden sollen? Beispielsweise in einem Webverzeichnis klassisch die Dateien auf 644, die Verzeichnisse auf 755.

Dies ist mit folgendem Trick möglich:

Dateien:

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

Verzeichnisse:

find . -type d -print0 | xargs -0 chmod 755

Mit find werden die den Kriterien entsprechenden Dateien gesucht, also in diesen zwei Fällen entweder Dateien = Files (f) oder Verzeichnisse = Directories (d). Der Punkt besagt, das im aktuellen Verzeichnis begonnen werden soll. Das Ergebnis wird dann via xargs an chmod übergeben.

Alternativ können auch folgende Befehle verwenden werden:

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

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

Hier soll es aber Probleme mit Datei- und Verzeichnisnamen geben, die Leerzeichen, Anführungszeichen oder Backslashes enthalten.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
 
allgemeine-howtos/shellbefehle/chmod-rekursiv-nur-auf-dateien-oder-verzeichnisse-anwenden.txt · Zuletzt geändert: 2016/01/18 23:40 von Martin Sebald