Linux でディスクの空き容量が不足してきたとき、ディレクトリのサイズを大きい順に表示して原因を特定する方法をここに残しておきます。
コマンド
以下のコマンドを実行すると容量が大きいディレクトリがわかります。
$ sudo du -m / --max-depth=3 --exclude="/proc*" | sort -k1 -n -r
オプションの説明
duコマンドの主なオプション
「du」は、ディスクの使用量をディレクトリごとに集計して表示するコマンドです。
含める/含めない
| 省略 | オプション | 説明 |
|---|---|---|
| -S | --separate-dirs | サブディレクトリのサイズを含めない |
| -s | --summarize | 指定したディレクトリの合計のみを表示する(サブディレクトリの行が表示されなくなる) |
| -d 深さ | --max-depth=深さ | 集計するディレクトリの深さを指定する(「--max-depth=0」は「--summarize(-s)」に相当) |
| -P | --no-dereference | シンボリックリンクをたどらない(デフォルト) |
| -L | --dereference | 全てのシンボリックリンクをたどる |
| -D,-H | --dereference-args | コマンドラインで指定されたシンボリックのみをたどる |
| -x | --one-file-system | 異なるファイルシステム(パーティション)にあるディレクトリをスキップする |
| -l | --count-links | ハードリンクがある場合は、その個数分のサイズを数える |
| --exclude=パターン | パターに一致するファイルを含めない | |
| -X ファイル | --exclude-from=ファイル | ファイルに含まれるパターンに一致するファイルを含めない |
| --files0-from=ファイル | ファイルに指定されたリスト(NUL区切り)を対象に集計する。「-」を指定した場合は標準入力から読み込む |
表示関係
| 省略 | オプション | 説明 |
|---|---|---|
| -h | --human-readable | サイズに応じて読みやすい単位で表示する |
| -H | --si | 読みやすい単位で表示する。ただし、1024単位ではなく1000単位の値を使用する |
| -Bサイズ | --block-size=サイズ | 指定したサイズの倍数で表示する。サイズは数値または単位で指定する |
| -k | --block-size=1Kと同じ | |
| -m | --block-size=1Mと同じ | |
| --apparent-size | ディスク使用量ではなく実際のサイズを表示する | |
| -b | --bytes | 実際のサイズをバイト単位で表示(「--apparent-size」「--block-size=1」に相当) |
| -c | --total | 全体の合計も表示する |
| -0 | --null | 改行ではなく、NULで区切って出力する |
| --time | 集計対象ごとに、集計対象となったファイルの最終更新時間を表示する | |
| --time=表示 | 表示に「atime」「access」「use」「ctime」「status」を指定して、「--time」で更新時間の代わりに表示で指定した時間を表示する | |
| --time-style=スタイル | 時間の表示スタイルとして「full-iso」「long-iso」「iso」「+FORMAT」を指定する。「+FORMAT」はdateコマンドのフォーマット指定と共通 |
sortコマンドの主なオプション
「sort」は、テキストファイルを“行単位で並べ替える”コマンドです。
並べ替え
| 省略 | オプション | 説明 |
|---|---|---|
| -f | --ignore-case | 大文字/小文字を区別しないで並べ替える |
| -V | --version-sort | 自然な(バージョン)数字順で並べ替える |
| -n | --numeric-sort | 文字列を数値と見なして並べ替える |
| -h | --human-numeric-sort | 人が読むことのできる形式の数値で並べ替える(例:2K、1Gなど) |
| -g | --general-numeric-sort | 一般的な数値として並べ替える |
| -M | --month-sort | 月名で並べ替える(不明、JAN……DECの順) |
| -d | --dictionary-order | データが空白と英数字のみ含まれていると仮定して並べ替える |
| -b | --ignore-leading-blanks | 先頭の空白を無視して並べ替える |
| -i | --ignore-nonprinting | 表示可能な文字だけを対象に並べ替える |
| -R | --random-sort | キーのランダムハッシュ順に並べ替える |
| --random-source=ファイル | ランダムソースのファイルを設定する | |
| --sort=指定 | 並べ替えの方法を指定する(general-numeric、human-numeric、month、numeric、random、version) | |
| -r | --reverse | 逆順で並べ替える |
| -k 指定 | --key=指定 | 場所と並べ替え種別を指定する(「-k 2」なら2列目、「-k 2n」なら2列目を数値として並べ替える。複数指定する場合は「-k」オプションを複数回指定する) |
| -t 文字 | --field-separator=文字 | フィールドの区切り文字を指定する(デフォルトは空白文字) |
その他
| 省略 | オプション | 説明 |
|---|---|---|
| -m | --merge | 並べ替えられたファイルをマージする(並べ替え自体は行わない) |
| -c | --check,--check=diagnose-first | 並べ替えられているかどうかを確認する |
| -C | --check=quiet,--check=silent | 「-c」」と同様だが、メッセージは出力しない(スクリプト内の判定行などで使用) |
| -u | --unique | 同一行は1つ目だけを出力する(「-c」と併せて使用した場合、厳密に順序を確認する) |
| -z | --zero-terminated | 最後にNULL文字を出力する |
| -o ファイル名 | --output=ファイル名 | 結果を出力するファイル名を指定する(デフォルトは標準出力) |
| --files0-from=F | NULL文字で区切られたファイル名のリストを指定する | |
| --debug | 並べ替えに使用されている行の一部に注釈を付けて、不確かな使用方法について標準エラー出力に警告を表示する |