如果在复制之前不存在该文件夹,可以创建一个文件夹吗?
docker cp /opt/project/build/core/bundle target_container:/opt/project/build/core
通常,仅存在
/opt/project/build/
。我想要做的是复制文件夹
bundle
并替换现有文件夹及其文件(如果存在)。如果不存在,则应创建文件夹core/bundle
并复制文件。
最佳答案
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
,它告诉docker将源复制到core/
目录中,而不是命名bundle
-> core
替换
如果要完全“替换”现有的
bundle
目录,而不是使用cp
向其中添加文件,则需要从删除开始。docker exec $target_container sh -c \
'rm -f /opt/project/build/core && mkdir -p /opt/project/build/core'
关于docker - Docker:在执行cp之前删除并创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598584/