Edited at

ディレクトリの合計容量を確認するには(local, Gogle Cloud Storage, S3)

特定のディレクトリ配下にあるファイルの総容量を見る方法です。


ローカルのファイルシステム

duコマンドで調べられます。以下の例ではpathディレクトリの総容量を確認できます。

$ du -sh ./path/

オプション



  • -s


    • 合計の容量のみを表示するオプション。

    • これを付けないとサブディレクトリも再帰的に容量を表示される。




  • -c


    • 合計の容量を表示するオプション。

    • これを付けなくてもディレクトリ単位での合計は表示してくれるので、これが生きるのは複数のディレクトリまたはファイルをパラメータで指定した場合。




  • -h


    • 容量表示に G, M, K などの人間にとってわかりやすい単位を付与するオプション。

    • これを付けないと数字のみのバイト単位での表示になり、桁数が多いと見づらい。




  • --help


    • ヘルプ表示




-s-cの違い

-s-cの違いが分かりづらいのですが、以下の2ファイルがあったとすると、

./path/a.txt

./path/b/b.txt

-sでは合計のみの表示。

$ du -s ./path/

16 ./path/

-sなしではサブディレクトリも表示。

$ du ./path/

8 ./path/b
16 ./path/

-cはtotal表示が追加されますが、役立たずです。

$ du -cs ./path/

16 ./path/
16 total

$ du -c ./path/

8 ./path/b
16 ./path/
16 total

-cは複数のディレクトリを指定した場合に役に立ちます。

$ du -cs ./path1/ ./path2/

16 ./path1/
16 ./path2/
32 total


Google Cloud Storage

GCPのストレージであるGoogle Cloud Storageでは、gsutil duコマンドで確認できます。

$ gsutil du -sh gs://xxxx/path/

オプションはローカルのduコマンドと同じです。オプションを覚えやすくてgsutilはいいですね。


AWS S3

AWSのストレージであるS3では、aws s3 lsコマンドで確認できます。

$ aws s3 ls --human --recursive --sum s3://yyyy/path/

awsコマンドはコマンドの使い方もオプションもgsutilと違ってオリジナルです。gsutilのほうがいいですね。

そして、なんとGoogleのgsutil duコマンドでもS3の容量を確認できます。

$ gsutil du -sh s3://yyyy/path/

やっぱりgsutilのほうがいいですね。


参考

AWS CLIを使用してS3のサイズとオブジェクト数を取得してみた - カピバラ好きなエンジニアブログ

duだけでなくcplsgsutilはS3に対応している!

Google Cloud StorageとAWS S3との間でファイルをコピーするには - Qiita

gsutil、aws s3での基本的なファイル操作(Google Cloud Storage、S3) - Qiita