>假设我有以下目录结构
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 的工作方式不同的原因是什么?
docker 文档在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
(带有尾部斜杠)。