📂
GCSのファイルを一括で移動する
自分のメモのために
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
参考
Discussion