如果文件夹在复制之前不存在,是否可以创建文件夹?
docker cp /opt/project/build/core/bundle target_container:/opt/project/build/core
通常只有/opt/project/build/
存在。
我想要做的是复制文件夹bundle
并替换现有文件夹及其文件(如果存在)。如果它不存在,则应创建文件夹core/bundle
并复制文件。
答案 0 :(得分:2)
oneliner虽然不太直观:
tar xf - <dir> | docker exec -i <container> tar xf -
答案 1 :(得分:1)
docker exec
将允许您在容器中运行命令。
docker exec $target_container mkdir -p /opt/project/build/core
docker cp /opt/project/build/core/bundle $target_container:/opt/project/build/core/
注意 /
上的结尾cp
,告知泊坞广告将源代码复制到core/
目录而不是命名bundle
- &gt ; core
<强>替换强>
如果要完全“替换”现有的bundle
目录而不是使用cp
向其添加文件,那么您需要从删除开始。
docker exec $target_container sh -c \
'rm -f /opt/project/build/core && mkdir -p /opt/project/build/core'