Wie wende ich den CHMOD-Befehl in Linux rekursiv auf eine beliebige Datei mit einem bestimmten Namen an?

Wie wende ich den CHMOD-Befehl in Linux rekursiv auf eine beliebige Datei mit einem bestimmten Namen an?

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 filenamein 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 findund xargs. Achten Sie insbesondere auf das -print0Flag und das entsprechende , -0wenn xargsSie 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.

verwandte Informationen