cp -R src/prog.js images/icon.jpg /tmp/package
将产生一个对称结构在目标目录:
/tmp
|
+-- package
|
+-- src
| |
| +-- prog.js
|
+-- images
|
+-- icon.jpg
而是,这两个文件被复制进入/ tmp /包。平面副本。 (这是在OSX上)。
是否有一个简单的bash功能我可以用它来复制所有文件,包括通过通配符指定的文件(例如SRC/*。JS)到目标目录中应有的地位。有点像“对于每个文件,运行mkdir -p $(dirname "$file"); cp "$file" $(dirname "$file")
”,但也许只有一个命令。
This is a relevant thread, which suggests it's not possible.作者的解决方案对我来说并不是那么有用,因为我想简单地提供一个文件列表,通配符或不是,并且将它们全部复制到目标目录。 IIRC MS-DOS xcopy可以做到这一点,但似乎没有cp的等价物。
好,所以我说得太快了。我最喜欢这个答案。 – EMPraptor 2009-10-30 15:07:54
谢谢。事实证明,“cp -parents”在mac上是不可能的,但很高兴知道其他unixen的标志。 rsync -R是此问题最简单的便携式解决方案。 – mahemoff 2009-11-01 01:42:34
我接受了它的优雅/可记性,但刚刚发现这并不复制整个目录(至少在OSX上),而下面的tar是。 – mahemoff 2012-07-23 14:21:12