假设我有以下目录结构
parent-dir
+ child-dir
+ grandchild-file-a
+ grandchild-file-b
uncle-dir
.
..
现在在unix上 - 如果我运行命令
parent-dir> cp child-dir ../uncle-dir
然后我希望得到
uncle-dir
+ child-dir
+ grandchild-file-a
+ grandchild-file-b
但是,如果我用docker cp
重复一遍,那么我得到
uncle-dir
+ grandchild-file-a
+ grandchild-file-b
如果我这样做,那么unix可能是合理的:
parent-dir> cp child-dir/* ../uncle-dir
我的问题是: Docker cp与Unix cp的工作方式不同的原因是什么?
答案 0 :(得分:2)
cp
上的泊坞文档解释了这一点:
- SRC_PATH指定目录
- DEST_PATH不存在
- 将DEST_PATH创建为目录,并将源目录的内容复制到此目录中
- DEST_PATH存在且是一个文件
- 错误情况:无法将目录复制到文件
- DEST_PATH存在且是一个目录
- SRC_PATH不以/结尾。
- 将源目录复制到此目录
- SRC_PATH以/结尾。
- 将源目录的内容复制到此目录中
因此DEST_PATH
不存在或者它确实存在,而docker cp
命令实际上是docker cp child-dir/ uncle-dir
(带有斜杠)。