Let's say I've got the following files in a Google Cloud Storage bucket:
file_A1.csv
file_B2.csv
file_C3.csv
Now I want to move a subset of these files, lets say file_A1.csv
and file_B2.csv
. Currently I do this like that:
gsutil mv gs://bucket/file_A1.csv gs://bucket/file_A11.csv
gsutil mv gs://bucket/file_B2.csv gs://bucket/file_B22.csv
This approach requires two call of more or less the same command and moves each file separately. I know, that if I move a complete directory I can add the -m
option in order to accelerate this process. However, unfortunately I just want to move a subset of all files and keep the rest untouched in the bucket.
When moving 100 files this way I need to execute 100 commands or so and this becomes quite time consuming. I there a way to combine each of the 100 files into just one command with addtionally the -m
option?
If you have a list of the files you want to move you can use the -I
option from the cp
command which, according to the docs, is also valid for the mv
command:
cat filelist | gsutil -m mv -I gs://my-bucket
gsutil does not support this currently but what you could do is create a number of shell scripts, each performing a portion of the moves, and run them concurrently.
Note that gsutil mv is based on the syntax of the unix mv command, which also doesn't support the feature you're asking for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With