回答:
これはあなたが探していることをします:
du -sh /*
これが意味するもの:
-s
各コマンドライン引数の合計のみを提供します。-h
M
メガバイトやG
ギガバイトなど、人間が読み取れる接尾辞の場合(オプション)。/*
内のすべてのディレクトリ(およびファイル)に展開するだけ/
です。
注:ドットファイルは含まれていません。shopt -s dotglob
それらも含めて実行します。
サイズでソートすることも便利です。
du -sh /* | sort -h
ここに:
-h
sort
人間が読める形式の接尾辞を正しく解釈するようにします。shopt -s dotglob
は、それらを使用してカウントに含めることができます。
/*
、代わりに必要なパスを配置できるためです。./
./*
./*/
すべてのアイテムではなくサブフォルダーのみを取得するために使用できます
du -sh /* | sort -h
sort
がない場合は-h
、そのままにしておく必要がありdu
ます。そうしないと、並べ替えでキロ/メガ/ギガバイトが混ざります。du -s /* | sort -nr
。
私は頻繁に最大のディレクトリを見つける必要があるため、20個の最大のディレクトリを含むソートされたリストを取得するには、次のようにします。
du -m /some/path | sort -nr | head -n 20
この場合、サイズはメガバイト単位で報告されます。
b
して、ディレクトリ内のシェルにドロップできます。
既存の回答は非常に役立ちます。おそらく、初心者(私のような)がこれも役立つと思うかもしれません。
非常に基本的なループですが、私にとっては、これは他のいくつかのサイズ関連操作の良いスタートでした。
for each in $(ls) ; do du -hs "$each" ; done
最初の回答と非常によく似ていて、1とほぼ同じ結果になりますが、サブディレクトリにある場合の*と./*の違いを理解するには少し時間がかかりました。
du -sh ./*
for each
それは、コンソールの文字(例えば追加として動作しない\033[
フォルダのリストに)
for each
。動作しません
次のdu
呼び出しは、BSDシステムで動作するはずです。
du -d 1 /
du
(Ubuntu 10.4)には-d
オプションがありません。どのシステムを使用していますか?
du -sk /*
です。私は-k
ものがすっごく嫌いです。Linuxは-h
完全に揺れ動きます。
--max-depth
これは簡単ではありません。このdu
コマンドは、ファイルとフォルダーを表示する(デフォルト)か、コマンドラインで指定したすべてのアイテムのサイズのみを表示します(オプション-s
)。
Linuxで人間が読めるサイズでソートされた最大のアイテム(ファイルとフォルダー)を取得するには:
du -h | sort -h
これにより、大量の小さなファイルに埋もれます。あなたはそれらを取り除くことができます--threshold
(私の例では1 MB):
du --threshold=1M -h | sort -h
このコマンドの利点は、非表示のドットフォルダー(で始まるフォルダー)が含まれていること.
です。
本当にフォルダだけが必要な場合は、使用する必要がありますが、多くのフォルダを数回スキャンする必要があるためfind
、これは非常に遅くなりdu
ます。
find . -type d -print0 | sort -z | xargs --null -I '{}' du -sh '{}' | sort -h
du
異なるシステム/マシン上のディレクトリと比較することはできません。どちらもファイルシステムの同じブロックサイズを共有していることに注意してください。これは、一部のファイルをLinuxマシンからnasにrsyncし、自分で同期ディレクトリを比較する場合にカウントされる場合があります。du
ブロックサイズが異なるため、結果が異なる場合があります。
xdiskusageをチェックアウトすることもできます。同じ情報を提供しますが、グラフィカルに表示され、さらにドリルダウンできます(非常に便利です)。KDE、さらにはWindows用の他の同様のユーティリティがあります。
以下ls
と組み合わせて使用できますawk
。
ls -al * | awk 'BEGIN {tot=0;} {tot = tot + $5;} END {printf ("%.2fMb\n",tot/1024/1024);}'
の出力ls
はにパイプされawk
ます。awk
データの処理を開始します。標準の区切り文字はスペースです。sum変数tot
はゼロに初期化されます。次の文は、によって出力される各行/行に対して実行されls
ます。tot
サイズが増えるだけです。$5
5番目の列(で出力されるls
)を表します。最後に(1024 * 1024)で割って合計をメガバイトにします。
これをスクリプトまたは関数(.bashrc)に変換する場合は、それを使用して、ファイルの種類に応じてディレクトリの特定のサブセットのサイズを取得することもできます。
システム全体の情報が必要kdirstat
な場合は、役に立つかもしれません!
--total
フラグは、私のために役に立ちました。例えばdu -sh --total applications/*
。askubuntu.com/a/465436/48214