Docker cp 与 Unix cp 的工作方式不同的原因是什么?



>假设我有以下目录结构

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(带有尾部斜杠)。

相关内容

  • 没有找到相关文章

最新更新