コマンドラインでディレクトリのサイズを取得するにはどうすればいいですか?

lsコマンドにオプションlをつけて、ディレクトリ(ディレクトリとサブディレクトリを含む)のサイズを取得しようとしました。ファイルの場合(ls -l ファイル名)はうまくいくようですが、ディレクトリのサイズを取得しようとすると(例えば、ls -l /home`)、全体としてはもっと大きいのですが、4096バイトしか取得できません。

ソリューション

du -sh file_path`

**説明はこちらから

  • du` (disc usage) コマンドは file_path のスペース使用量を推定します。

  • オプションの -sh は(man du より)。

       -s, --summarize
              各引数の合計値のみを表示する
    
       -h, --人間が読める形式
              人間が読める形式でサイズを表示する(例:1K 234M 2G)。

    複数のディレクトリをチェックして合計を見るには、du -schを使います。

       -c, --total
              総計を表示する
解説 (4)

du`はあなたの友人です。ディレクトリの合計サイズを知りたいだけなら、それに飛び込んで実行してください。

du -hs

また、どのサブフォルダがどれだけのディスク容量を占めているかを知りたい場合は、次のようにします。このコマンドを次のように拡張することができます。

du -h --max-depth=1 | sort -hr

とすると、すべてのサブフォルダのサイズが表示されます(レベル1)。出力はソートされます(最大のフォルダが一番上)。

解説 (3)

du`コマンドは、ファイルのディスク使用量を表示します。

h`オプションは人間が読める形式で結果を表示します(例:4k、5M、3G)。

du -h (file name)
解説 (0)