📂

GCSのファイルを一括で移動する

2022/06/22に公開

自分のメモのために

gs://yourbucket/foo/bar/の中にある、たくさんのファイルを他のフォルダ(バケットも可)に移動したいとき、GUIだと1ファイルずつしか動かせないので、困った。

やり方

移動元のファイルパス一覧のテキストファイルを作成して

filelist.txt
gs://yourbucket/foo/bar/file1.txt
gs://yourbucket/foo/bar/file2.txt
gs://yourbucket/foo/bar/file3.txt
...

catコマンドをパイプでgsutilコマンドにつなげるとOK

cat filelist.txt | gsutil -m mv -I gs://yourbucket/destination/

ファイルリストの準備が面倒なとき

コマンドでファイルパスをすべて引っ張れるので、そこから正規表現なりで対象のパスだけ残すと楽かも

gcloud alpha storage ls --recursive gs://yourbucket/foo/bar > targetFiles.txt

参考

https://stackoverflow.com/questions/29945764/moving-multiple-files-with-gsutil
https://cloud.google.com/storage/docs/gsutil/commands/cp#options

Discussion