当我尝试使用通配符复制现有目录中的一些文件时,收到以下错误:
kubectl cp localdir/* my-namespace/my-pod:/remote-dir/
error: one of src or dest must be a remote file specification看起来通配符支持已经被删除了,但是我有很多文件要复制,而且我的远程目录不是空的,所以我不能使用递归。
如何运行类似的操作?
发布于 2020-05-06 23:08:35
作为一种解决方法,您可以使用:
find localdir/* | xargs -I{} kubectl cp {} my-namespace/my-pod:/remote-dir/在find中,您可以使用通配符指定要查找的文件,它会将其复制到pod。
发布于 2021-02-24 19:03:14
下面是我的想法:
kubectl exec -n <namespace> <pod_name> -- mkdir -p <dest_dir> \
&& tar cf - -C <src_dir> . | kubectl exec -i -n <namespace> <pod_name> -- tar xf - -C <dest_dir>请注意,有两部分,第一部分是确保目标目录存在。第二种方法是使用tar对文件进行归档,然后将其发送并解压缩到容器中。
请记住,为了使其正常工作,您的容器中必须存在tar和mkdir二进制文件。
与前面提出的解决方案(使用xargs的解决方案)相比,此解决方案的优点是速度更快,因为它一次发送所有文件,而不是逐个发送。
https://stackoverflow.com/questions/61632490
复制相似问题