0
我在谷歌雲平臺上有一個存儲桶。文件夾中的所有文件。我想該文件夾中的所有這些文件移動到根,即:將Google雲平臺中的目錄移動到根目錄
目前: /文件夾/ [文件和文件夾]
我想: /[文件和文件夾]
哪有我用gsutil做這個嗎?
我在谷歌雲平臺上有一個存儲桶。文件夾中的所有文件。我想該文件夾中的所有這些文件移動到根,即:將Google雲平臺中的目錄移動到根目錄
目前: /文件夾/ [文件和文件夾]
我想: /[文件和文件夾]
哪有我用gsutil做這個嗎?
我不認爲有一種巧妙的方法可以快速完成此操作(請參閱:使用一個gsutil命令),但是您可以遍歷存儲桶內容的列表併爲每個條目運行gsutil mv
命令,如Bash示例如下:
$ # We have a lot of stuff in "folder1".
$ BUCKET=mybucket
$ gsutil ls gs://$BUCKET/**
gs://mybucket/folder1/subfolder/testfile.txt
gs://mybucket/folder1/testfile space.txt
gs://mybucket/folder1/testfile.txt
gs://mybucket/folder1/testfile2.txt
# Move it all to the root of the bucket!
# This approach accounts for spaces in object names.
$ FOLDERNAME="folder1"
$ gsutil ls "gs://$BUCKET/$FOLDERNAME/**" | while read objpath; do
newpath="$(echo $objpath | sed "s#$FOLDERNAME/##")"
gsutil mv "$objpath" "$newpath"
done
[...]
# And verify the results:
$ gsutil ls gs://$BUCKET/**
gs://mybucket/subfolder/testfile.txt
gs://mybucket/testfile space.txt
gs://mybucket/testfile.txt
gs://mybucket/testfile2.txt
注意執行的gsutil,一個順序執行每個MV操作,是相當緩慢的,如果你有大量的對象。我發現使用這個腳本時,移動了15個對象花了我38秒(大約每個對象約2.5s)。