Ich hoffte:
cp -R src/prog.js images/icon.jpg /tmp/package
würde eine symmetrische Struktur im Zielverzeichnis ergeben:
/tmp
|
+-- package
|
+-- src
| |
| +-- prog.js
|
+-- images
|
+-- icon.jpg
Stattdessen werden beide Dateien in / tmp / package kopiert. Eine flache Kopie. (Dies ist unter OSX).
Gibt es eine einfache Bash-Funktion, mit der ich alle Dateien, einschließlich der durch Platzhalter angegebenen Dateien (z. B. src / *. Js), an ihren rechtmäßigen Platz im Zielverzeichnis kopieren kann? Ein bisschen wie "für jede Datei ausführen mkdir -p $(dirname "$file"); cp "$file" $(dirname "$file")
", aber vielleicht ein einzelner Befehl.
Dies ist ein relevanter Thread, was darauf hindeutet, dass dies nicht möglich ist. Die Lösung des Autors ist für mich jedoch nicht so nützlich, da ich einfach eine Liste von Dateien, Platzhalter oder nicht, bereitstellen und alle in das Zielverzeichnis kopieren lassen möchte. IIRC MS-DOS xcopy macht dies, aber es scheint kein Äquivalent für cp zu geben.