gsutil cp:使用-I选项复制文件以匹配子目录

时间:2015-12-02 15:15:57

标签: gsutil

我想在保留目录结构的同时将文件列表复制到存储桶。

的test.txt:

a/b/1.jpg
a/c/23.jpg
a/d/145.jpg

gsutil命令:

cat file.txt | gsutil -m cp -I 'gs://my-bucket/'

这会复制文件但忽略子目录。有办法解决我的问题吗?非常感谢!

3 个答案:

答案 0 :(得分:0)

我相信您必须使用-R选项来获取递归副本: gsutil -m cp -R gs://my-bucket/

从文献中: https://cloud.google.com/storage/docs/gsutil/commands/cp

  

如果要复制整个目录树,则需要使用-r选项:   gsutil cp -r dir gs://my-bucket

希望有所帮助!

答案 1 :(得分:0)

我只是遇到了同样的问题,经过一些思考后,我认为它的设计就像unix include "templates/header.php" include "modal_login.php"命令一样。我想出了一个使用cp实用程序的解决方案,您可以这样做:

xargs

使用cat test.txt | xargs -I '{}' gsutil '{}' gs://my-bucket-name/'{}' 选项,xargs为每个输入行执行以下命令。此方法引入的一个缺点是,您无法-I使用-m,这可能会显着降低任务速度。

答案 2 :(得分:-1)

我认为您可以使用find命令。例如,以下命令帮助我复制了" [你的路径]"下的所有.json文件。文件夹及其子文件夹到GCS存储桶中,-m选项正常工作。希望它有所帮助

sudo find [your path] -print | grep -i '.*[.]json' | sudo gsutil -m cp -I gs://[your bucket]