Ich habe folgenden Bash-Skript:Kopieren gefunden Verzeichnis Pfad angegebenes Argument gebaut und gefunden Verzeichnis
cd root_folder && find folder1 folder2 -name "doc" -exec cp -r --parents {} $1{} \;
Die Idee, alle Ordner von root_folder
Start doc
unter folder1
und folder2
und Kopieren der Struktur mit dem Namen zu finden ist der Pfad, der durch das Argument des Benutzers angegeben wird (zusammen mit dem gesamten Inhalt von doc
).
So zum Beispiel
root_folder/folder1/other_folder/doc
wird:
$1/folder1/other_folder/doc
Dieses Skript funktioniert, solange ich der Benutzer den Ordner nicht angeben müssen kopiert werden, das heißt, wenn ich nicht tun habe die $1
. Allerdings, wenn ich es tun, erhalte ich die Fehlermeldung:
cp: with --parents, the destination must be a directory
Try `cp --help' for more information.
Dies trotz der Tatsache, dass 1) Ich versichern, daß der angegebene Ordner existiert vorher, und 2) Wenn ich Ausgang für den vollständige Pfad zu kopieren, es sieht genau so aus, wie es sein sollte, dh $1/folder1/other_folder/doc
.
Ich habe auch versucht, eine /
nach $1
Zugabe $1/{}
zu machen, aber das gibt einen Schrägstrich zu viele, den Weg machen //
enthalten, die offensichtlich falsch ist.
Was fehlt mir hier?