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

imr*_*iss 2 copy options tar kubernetes kubectl

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

谢谢

Pan*_*ini 5

你可以这样做 -

kubectl exec -n <some-namespace> <some-pod> -- tar cf - --exclude='pattern' /tmp/foo | tar xf - -C /tmp/bar
Run Code Online (Sandbox Code Playgroud)

例如——

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

/tmp/foo # ls
file1.txt  file2.txt
Run Code Online (Sandbox Code Playgroud)

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

kubectl exec -n pankaj <pod name> -- tar cf - --exclude='file2.txt' tmp/foo | tar xf - -C /Users/pa357856/test
Run Code Online (Sandbox Code Playgroud)

结果将是我只会得到 file1.txt

$ pwd
/Users/pa357856/test
$ ls tmp/foo/
file1.txt
Run Code Online (Sandbox Code Playgroud)