🧳
gsutil で複数パスのファイルを並列削除する
-m オプションによる並列削除
gsutil コマンドで削除を行う際、削除するファイルが数多くある場合は、-m
オプションを使用して、並列削除を行うことで削除を高速化できる(トップレベルのオプションとして指定する)。
-m
サポートされている操作(acl ch、acl set、cp、mv、rm、rsync、setmeta)を並行して実行できます。比較的高速なネットワーク接続で大量のファイルに操作を実行する場合、このオプションを使用すると、パフォーマンスが大幅に向上します。
gsutil -m rm "gs://example_bucket/**"
ただ、このオプションを指定した場合でも、以下のように一つ一つコマンドを実行すると時間がかかりがち。
gsutil -m rm "gs://example_bucket/folder1/**"
gsutil -m rm "gs://example_bucket/folder2/**"
gsutil -m rm "gs://example_bucket/folder3/**"
gsutil -m rm "gs://example_bucket/folder4/**"
gsutil -m rm "gs://example_bucket/folder5/**"
-I オプションによる複数パスの削除
複数パスを一度に削除したい場合には -I
オプションが有効だ。
-I Causes gsutil to read the list of objects to remove from stdin. This allows you to run a program that generates the list of objects to remove.
-m
オプションを組み合わせることで、複数パスのファイルを並列で削除することが可能だ。
cat << EOS | gsutil -m rm -I
gs://example_bucket/folder1/**
gs://example_bucket/folder2/**
gs://example_bucket/folder3/**
gs://example_bucket/folder4/**
gs://example_bucket/folder5/**
EOS
Discussion
有益な記事をありがとうございます!
本筋から外れますが、タグが
cloustorage
になっています。正しくはcloudstorage
だと思います。ほんとですね、、ありがとうございます! 修正しました。