Ich schreibe ein Bash-Skript, das, wenn es vom Verzeichnis B
spiegelt die Verzeichnisstruktur des Verzeichnisses A
im Verzeichnis B
.
Derzeit gehe ich folgendermaßen vor:
#!/bin/bash
dirify () {
echo $1
}
export -f dirify
find "../test" -type d -exec bash -c "dirify '{}'" \;
Ich führe dieses Skript vom Verzeichnis B
y ../test
ist Verzeichnis A
. Glücklicherweise enthält das Verzeichnis, das ich zum Testen verwende, Ordner mit '
im Namen. Wenn ich dieses Skript ausführe, gibt die Bash die folgende Fehlermeldung aus, wenn sie diese Verzeichnisse erreicht:
> bash: -c: line 0: unexpected EOF while looking for matching `''
> bash: -c: line 1: syntax error: unexpected end of file
(Beachten Sie, dass sich Zeile 0 und Zeile 1 auf die Zeilen innerhalb der dirify()
Funktion)
Eine vereinfachte Darstellung dieses Problems lautet wie folgt:
find "../test" -exec bash -c "echo '{}'" \;
Dieses Beispiel führt zu denselben Fehlern.
Wie auch immer, das ist ein Problem, denn in der Produktion kann ich nicht davon ausgehen, dass Dateipfade nicht die '
Charakter.
Gibt es eine Möglichkeit, dieses Problem zu umgehen?