Suppose we have 50 objects and we want to move them from bucket_a to bucket_b with gsutil. We run the command and it fails halfway through. Will we have 25 objects in bucket_a and 25 objects in bucket_b? Is there any official documentation about this?
gsutil mv gs://bucket_a/* gs//bucket_b/
gsutil, like gcloud only a convenient tool that wrap API calls to the services. If you have a look to CLoud Storage API, you can see that the "move" operation does not exist.
In fact the move is a combination of 2 operations:
Note that is the same scenario even if the source and destination are in the same bucket
Therefore, if your command fail or if you lost the network, it depends on where it fails. If it fail during the copy call, the object won't be deleted and you could have the source object and the destination object in the same time (the deletion has not been called due to the issue).
Note: here, if the copy API call has been sent, and even if the gsutil lost the connection, the API call is still completed on the Cloud side