调用 kubectl cp 命令时如何使用 tar 命令选项

How to use tar command options when calling kubectl cp command

似乎 kubectl cp 命令在后台使用了 tar 命令。我如何使用(通过 kubectl cp 命令传递它们)某些 tar 命令选项,例如 --exclude?例如,这可能有助于排除不需要从容器中复制的特定 files/directories。

谢谢

你可以这样做 -

kubectl exec -n <some-namespace> <some-pod> -- tar cf - --exclude='pattern' /tmp/foo | tar xf - -C /tmp/bar

例如-

我在命名空间 "pankaj" 中获得了一个 pod 运行;在我的容器中,我在路径中有 2 个文件 - /tmp/foo

/tmp/foo # ls
file1.txt  file2.txt

我的用途是我只想复制文件 file1.txt 所以我会这样做 -

kubectl exec -n pankaj <pod name> -- tar cf - --exclude='file2.txt' tmp/foo | tar xf - -C /Users/pa357856/test

结果是我只会得到file1.txt

$ pwd
/Users/pa357856/test
$ ls tmp/foo/
file1.txt