Befehl zum Ausführen eines rekursiven chmod, um alle .sh-Dateien in einem Verzeichnis ausführbar zu machen?

13

Der Versuch, ein rekursives chmod für alle .sh-Dateien in einem Verzeichnis durchzuführen, um sie ausführbar zu machen

Arunava
quelle
Schau rein findund vielleicht xargs.
fkraiem

Antworten:

25

Um dies zu ermöglichen, können Sie den findBefehl verwenden und nach allen Dateien mit einer .shErweiterung suchen und dann den chmodBefehl für jede gefundene Datei ausführen :

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;

Information:

  1. -type f: Nur normale Dateien (Verzeichnisse, Symlinks, Named Pipes und Sockets sowie die speziellen Dateien in / dev überspringen)
  2. -iname: Groß- / Kleinschreibung im Namen ignorieren
  3. "*.sh": Globbing, das den findBefehl anweist, nach Dateien mit der Erweiterung ".sh" zu suchen
  4. -exec chmod +x {}: Dies weist den findBefehl an, chmodfür jede gefundene Datei einen Befehl auszuführen . Jede ausführbare Datei machen
  5. \;: Befehlsende anzeigen
George Udosen
quelle