ディスクの容量が不足しています:
$ df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda7 803G 715G 48G 95% /home
ホームディレクトリ全体を調べ、スペースを消費する上位10個のディレクトリまたはファイルを見つけて、削除するユーザーを決定します。
du -sh *
はすべてのサブディレクトリのサイズを表示できますが、現在のフォルダーのみを取得します。私が必要とする犯人が誰であるかを知るために、それぞれ多くのサブディレクトリに再帰的に分割する必要があるかもしれません。
これを行う良い方法はありますか?
GUIを使用できる場合は、 Baobab を試してください。これは、ハードディスク領域の使用状況を分析するためのグラフィカルツールです。
ncd は、ディレクトリをスキャンし、ディスク使用量を最高から最低まで一覧表示するコマンドラインオプションです。これが私のツールです。
この方法でも、再帰的にダイビングする必要がありますが、これは簡単な方法です。
du |並べ替え-rn |頭
次のコマンドを使用します。
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'
スペースの大部分を消費しているディレクトリをパーセンテージで示したグラフのようなコマンドラインが表示されます。
/home
のみを分析する場合は、次のようにコマンドで指定できます。
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'
それはそのようになります:
here から取得。
バオバブの+1。コマンドラインでは、通常、du -hcsx *
またはdu -hcsx * | sort -h
(失敗した最新バージョンのsort
が必要)、次にサブディレクトリを確認します。
また、mc
には、 Ctrl+Space その上に(プレス Ctrl+Space の上に ..
を使用して、すべてのサブディレクトリのサイズを計算します。次に、メニューでサイズによるソートを選択できます。
これを試して:
du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10