我想在保留目录结构的同时将文件列表复制到存储桶。
的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/'
这会复制文件但忽略子目录。有办法解决我的问题吗?非常感谢!
答案 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]