
Ich muss wissen, wie ich einen CHMOD-Befehl rekursiv nur auf Dateien mit einem bestimmten Namen anwende.
chmod 755 -R filename
Etwas wie oben, aber es sollte für alle filename
in allen Unterordnern vorhandenen Ordner gelten.
Antwort1
Dadurch werden alle Dateien mit dem Namen Dateiname rekursiv aus dem aktuellen Verzeichnis gefunden und an übergeben chmod
.
find -name filename | xargs chmod 755
Weitere erweiterte Optionen finden Sie in den Manpages für find
und xargs
. Achten Sie insbesondere auf das -print0
Flag und das entsprechende , -0
wenn xargs
Sie Fehler bei Dateien mit Leerzeichen im Namen erhalten.
Antwort2
Es gibt auch einen Exec-Parameter in find, der dasselbe bewirkt:
find . -name filename -exec chmod 755 {} \;
Antwort3
Sie können das Beste aus beiden Welten erhalten, wenn Sie den Operator „find“ verwenden, um es auf mehreren Dateien gleichzeitig +
auszuführen .chmod
find . -name filename -exec chmod 755 '{}' +
Sie sollten immer ein '
um Ihren Namen setzen {}
, da ein Dateiname mit einem Leerzeichen sonst Probleme bereiten könnte. In diesem Fall ist das kein Problem, aber ich mache das aus Gewohnheit.