ディレクトリのサイズを知る方法は?サブディレクトリとファイルを含みます。
du -s directory_name
または、人間が読める出力を取得するには:
du -sh directory_name
-s
オプションは、各サブディレクトリのサイズをリストせず、合計サイズのみをリストすることを意味します。
Ncduなどの別のパッケージを使用するとうまくいく場合がありますが、サイズを調整するフォルダーのリストをduに指定するだけで、多くのフォルダーの同じ比較をある程度行うことができます。たとえば、システムの最上位ディレクトリを比較するには...
cd /
Sudo du -sh ./*
du -csh
-cは総計を生成します
試す
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
これは、du -sh ./*
を使用してふるいにかける大きなディレクトリを見つけるのに役立ちます
Awkの「file-size.sh」を使用できます ベロアライブラリ :
ls -ARgo "$@" | awk '{q += $3} END {print q}'
私は常に「ncdu」パッケージをインストールし、すべてのディレクトリのすべての出力をグラフィカルに表示します。これは、1つのディレクトリの合計に関係なく、通常、マシンで最も多くのディスク領域を消費しているものを知る必要があるためです。
使用法: Sudo ncdu /
(読み取り権限のあるフォルダではSudo
は必要ありません)。
ファイルシステム全体のディスク使用統計をスキャンするには、しばらく時間がかかります。これは、ニースのコマンドラインのグラフィカルな表現と、スキャンしたパスをより深くまたはより高く移動するなど、矢印キーを使用したキーボードナビゲーションが含まれています。を押してアイテムを削除することもできます D。
du -hd1
すべてのディレクトリのサイズを人間が読める形式でリストします。
656K ./rubberband
2.2M ./lame
652K ./pkg-config
すでにベストアンサーが提供されているので、以下のコマンドを試してみました
Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
出力
Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
元の質問ではサイズが尋ねられましたが、それがディスク上のサイズであるか、データの実際のサイズであるかは明記されていませんでした。
「du」の計算は、同じファイルシステムを使用する同じサイズのパーティションを持つサーバー間で異なる可能性があることを発見しました。ファイルシステムの特性が異なる場合、これは理にかなっていますが、それ以外の場合、理由がわかりません。 Steven Pennyの「ls | awk」という答えは、より一貫性のある答えをもたらしましたが、それでも非常に大きなファイルリストでは一貫性のない結果をもたらしました。
「find」を使用すると、XFSを使用するサーバーとEXT4を使用するサーバーを比較した場合でも、300,000以上のファイルで一貫した結果が得られました。したがって、すべてのファイルのデータの合計バイト数を知りたい場合は、次の方法で取得することをお勧めします。
find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
ls -ldhを使用することもできます。
ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-lは長いリスト用です。 -dはディレクトリの内容ではなくディレクトリ情報を表示するためのもので、-hは人間が読める形式でサイズを表示するためのものです。