我希望:
cp -R src/prog.js images/icon.jpg /tmp/package
将在目的地目录中产生对称结构:
/tmp | +-- package | +-- src | | | +-- prog.js | +-- images | +-- icon.jpg
而是将这两个文件复制到/ tmp / package中。平复印。 (这是在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的等效。
你试过使用–parents选项吗?我不知道OS X是否支持,但是在Linux上工作。
cp --parents src/prog.js images/icon.jpg /tmp/package
如果这在OS X上不起作用,请尝试
rsync -R src/prog.js images/icon.jpg /tmp/package
如aif建议。