我想在保留目錄結構的同時將文件列表複製到存儲桶。gsutil cp:使用-I選項將文件複製到匹配的子目錄
的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/'
此份文件,但忽略了子目錄。有沒有辦法解決我的問題?非常感謝!
我想在保留目錄結構的同時將文件列表複製到存儲桶。gsutil cp:使用-I選項將文件複製到匹配的子目錄
的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/'
此份文件,但忽略了子目錄。有沒有辦法解決我的問題?非常感謝!
我相信你必須使用-R選項來獲得遞歸複製: gsutil -m cp -R gs://my-bucket/
從documetation: https://cloud.google.com/storage/docs/gsutil/commands/cp
如果要複製您需要使用整個目錄樹-r選項:
gsutil cp -r dir gs://my-bucket
希望幫助!
我有同樣的問題和之後的一些想法,我想,這是由設計就像UNIX cp
命令。我想出了利用xargs
實用的解決方案,你可以這樣做:
cat test.txt | xargs -I '{}' gsutil '{}' gs://my-bucket-name/'{}'
隨着-I
選項,xargs的執行對於每個輸入行下面的命令。一個缺點這種方法引入的是,你不能使用-m
爲gsutil cp
它可以顯著減慢任務。
我認爲你可以使用find
命令。例如,下面的命令幫助我將「[you path]」文件夾及其子文件夾下的所有.json文件複製到GCS存儲桶中,同時使用-m選項。希望它可以幫助
sudo find [your path] -print | grep -i '.*[.]json' | sudo gsutil -m cp -I gs://[your bucket]
你找到一種方法? –