1. Kontrolliere bitte, was Dein Skript macht.
#Alle Dateien anschließend auf 640 setzen
find -type f -print0 | xargs -0 -r -t chmod 640
#Alle Verzeichnisse (bis auf Ausnahmen) auf 750 setzen
find \( -path "./Exclude1" -o -path "./Exclude2/temp" -o -path "./Exclude3/temp2" -o -path "./Exclude4" \) -prune -o -type d -print0 | xargs -r -t -0 chmod 750
Die hinzugefügten Optionen für xargs
sind:
-r
: Starte den Befehl nicht, wenn String leer ist.-t
: Gib den Befehl mit dem Argument aus.
1.a (Alternative)
Um wirklich alle ausgeführten Befehle zu sehen, setze
set -x
als Zeile nach der Shebang. Was das ist folgt:
2. Wie (zum Teufel!) startest Du das Skript eigentlich?
Mit der Shebang
#!/bin/sh
und direkt gestartet wirft es den Fehler, dass in Zeile 3, die da lautet:
myAlles=('Verz1' 'Verz2' 'Verz3')
ein Syntaxfehler sei und beendet sich. Das ist auch richtig, weil die „Urshell“ (/usr/bin/sh
) tatsächlich „keine Arrays kann“.
Die „Shebang“ muss also #!/usr/bin/bash
lauten.