Verwenden Sie find:
find . -name "*.sh" -exec chmod +x {} \;
Versuchen Sie, die herrliche Kombination von find mit xargs zu verwenden.
find . -iname \*.sh -print0 | xargs -r0 chmod +x
Der . ist das Startverzeichnis, in diesem Fall das Arbeitsverzeichnis.
Mit modernen Versionen von find erhalten Sie die Vorteile eines xargs Ansatz, der mehrere Aufrufe des Befehls vermeidet (chmod ). Der Befehl ist nur geringfügig anders.
find . -name "*.sh" -exec chmod +x {} +
Ausschnitt aus find docs am Arch 01.09.2015 (Schwerpunkt von mir hinzugefügt):
-exec command {} +
Diese Variante des -exec Aktion führt den angegebenen Befehl für die ausgewählten Dateien aus, aber die Befehlszeile wird erstellt, indem jeder ausgewählte Dateiname am Ende angehängt wird; Die Gesamtzahl der Aufrufe des Befehls ist viel geringer als die Anzahl der übereinstimmenden Dateien . Die Befehlszeile ist ähnlich aufgebaut wie xargs baut seine Befehlszeilen. Nur eine Instanz von {} ist innerhalb des Befehls erlaubt. Der Befehl wird im Startverzeichnis ausgeführt.