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.