【du】du -shだけじゃない!ディレクトリごとの容量を賢く可視化するテクニック【Linuxコマンド入門 Part3-7】

duコマンドは、個別のフォルダ(ファイル)の使用容量を確認するコマンドです。

「作業フォルダで、どれが一番容量を食っているのか知りたい」

「容量が足りなくなってきたけど、どれが主な原因なのか知りたい」

基本的には、前回紹介した全体のディスク容量を確認するdfと組み合わせて使います。

df で90%使用済みと出た。じゃあ、何を消せばいいの? を調べるのが今回の主役 du コマンドです。

  • df (Disk Free): ファイルシステム全体の「残量」を見る。(イメージ:財布の中身)
  • du (Disk Usage): ディレクトリごとの「使用量」を見る。(イメージ:買い物のレシート明細)

前回:df(Disk Free)コマンドの使い方と出力の見方

dfコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【df】Linuxでディスクの空き容量を正しく確認する方法【Linuxコマンド入門 Part3-6】

linuxでディスクの残容量を確認する方法。dfコマンドで、システム全体のディスク容量を確認します。おすすめオプションとinode,ファイルシステムのタイプなど詳しくわかりやすく紹介します。

duコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

du コマンド

duは、Disk Usageの略で、フォルダ単位でどのくらい容量を使っているか確認できます。

基本構文

基本は du [対象のディレクトリパス]で使えます。[対象のディレクトリパス]は省略でき、省略したらカレントディレクトリの使用容量を確認できます。

duだけで実行すると、カレントディレクトリ配下のフォルダのデータ量が表示されるので、一気に流れて確認しずらいときがあります。そんな時は、下の方で紹介するオプションを使って表示を調整できます。

du 実行例

du [フォルダの指定、引数なしでカレントディレクトリ]

実行結果

kB単位で容量が表示されます。”.”カレントディレクトリのファイルとフォルダ全部合わせたもの

$ du

#実行結果例
# 容量(kB) フォルダ名
4       ./.cache
8       ./.config/htop
4       ./.config/procps
16      ./.config
552     ./test
4       ./dummy
4       ./.local/share/nano
8       ./.local/share
12      ./.local
1068    .

おすすめオプション

紹介するものリスト

ちょっと多くなったので箇条書きしました。

  • -h (Human-readable)読みやすく表示
  • du -h | sort -hr 使用量順にソート
  • -s (Summarize) 合計だけ表示
  • -a (all) ファイルを含め全部表示
  • findと組み合わせる:特定の拡張子のファイルで絞り込む
  • -d [深さ] (depth) 表示する深さ指定
  • -k -m (接頭字指定でフォーマット) 容量の単位を指定

(下で詳しく紹介しています。特に気になるものがあれば、右にある目次(携帯で見ていると表示されないときがあります)から飛んでください。)

1. 読みやすく表示 -h (Human-readable)

見やすく整形して出力します。ほかのコマンドでもよく見るやつですね。

df -h

出力結果

#実行結果例
# 容量(kB) フォルダ名
4.0K    ./.cache
8.0K    ./.config/htop
4.0K    ./.config/procps
16K     ./.config
552K    ./test
4.0K    ./dummy
4.0K    ./.local/share/nano
8.0K    ./.local/share
12K     ./.local
1.1M    .

2. 使用量順にソート : du -h | sort -hr

-hに加えて出力結果をsortコマンドでソートして、使用量順にソートして出力します。

du -h | sort -hr

出力結果

1.1M    .
552K    ./test
16K     ./.config
12K     ./.local
8.0K    ./.local/share
8.0K    ./.config/htop
4.0K    ./dummy
4.0K    ./.local/share/nano
4.0K    ./.config/procps
4.0K    ./.cache

※sortにも-hをつけないといけません

humanreadableをつけないと、sortは文字列順にソートしてしまうので、以下の様な表示になり容量別になりません。

$du -h | sort -r

# 文字でソートされるので8.0kが一番上にきている
8.0K    ./.local/share
8.0K    ./.config/htop
552K    ./test
4.0K    ./dummy
4.0K    ./.local/share/nano
4.0K    ./.config/procps
4.0K    ./.cache
16K     ./.config
12K     ./.local
1.1M    .

3.合計だけ表示 : -s (Summarize)

「合計だけ」を表示する方法です。フォルダ数が多いときに使うと便利です。(読みやすくhもつけている例)

du -sh

出力結果

カレントディレクトリ(指定したディレクトリ)の使用容量を表示できます。

1.1M    .

4. ファイルを含め全部表示 : -a (all)

-hなどで容量を食っているフォルダを特定後、ファイルを特定したいときなど詳細を確認するときに使います。

du -a [対象のディレクトリ、空白でカレントディレクトリ]

出力結果

対象のディレクトリのファイル全ての使用容量を表示できます。

$du -a

4       ./.bashrc
0       ./.cache/motd.legal-displayed
4       ./.cache
4       ./.config/htop/htoprc
8       ./.config/htop
4       ./.config/procps
16      ./.config
0       ./.landscape/sysinfo.log
4       ./.landscape
0       ./.sudo_as_admin_successful
4       ./.bash_logout
4       ./test/sample_multi.py
536     ./test/sample02.jpg
0       ./test/text.txt
4       ./test/dummy.py
4       ./test/test.c
552     ./test
460     ./sample01.jpg
4       ./.bash_history
4       ./.profile
4       ./dummy
4       ./.local/share/nano
8       ./.local/share
12      ./.local
0       ./.motd_shown
1072    .

出力例の場合、.jpgファイルが容量のほとんどを占めていることがわかります。

5. 特定の拡張子のファイルで絞り込む : findと組み合わせる

 du自体には、特定のファイル形式を無視する “–exclude”のオプションはありますが、その逆の特定の拡張子のものだけを絞り込むオプションはないので、findでいったん絞り込んでからduと組み合わせます。

.pyファイルの容量を確認したい時の例

*.py“を書き換えれば、別の拡張子でも使えます

find . -name "*.py" -print0 | du -ch --files0-from=-

出力結果

.pyのファイルだけ、絞り込んで容量を確認できます。

$find . -name "*.py" -print0 | du -ch --files0-from=-
4.0K    ./test/sample_multi.py
4.0K    ./test/dummy.py
8.0K    total

-cオプション :totalを表示する。

ちょこっと解説: -print0はファイル名にspaceがあったらバグるので対策。–files0-from=-は、pipe “|”からの標準入力を受け取っています。

参考:findコマンド

findコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【初心者向け】findコマンド「ファイル検索」- コピペで試せるオプション理解 -【Linuxコマンド入門 #16】

linuxでファイルを探す方法,findコマンドについて、実務でも使える、よく使うオプションや便利な使い方について紹介します。

6. 表示する深さ指定 : -d [深さ] (depth)

今の階層から、少しだけを検索し表示する用。 1で今の階層だけにまとめる。サブディレクトリ(ディレクトリの中にあるディレクトリ)があってもまとめて。

du -h -d 1

出力結果

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdd       1007G  1.7G  955G   1% /
none            1.9G   72K  1.9G   1% /mnt/wslg
none            1.9G     0  1.9G   0% /usr/lib/wsl/lib
rootfs          1.9G  2.7M  1.9G   1% /init
none            1.9G  504K  1.9G   1% /run
none            1.9G     0  1.9G   0% /run/lock
none            1.9G     0  1.9G   0% /run/shm

7. 容量の単位を指定 : -k -m (接頭字指定でフォーマット)

  • -k : kB単位で表示
  • -m : MB単位で表示 (1mB = 1024kB)

あまり使う機会はないかもしれませんが、2.2Mや20Kが混じっていたり、容量が多くMBで処理したいなどの場合、別の場所に受け渡すときにいちいち読み替えないといけなくなり面倒だったりするので、-kをつけて、kB単位に統一するためなどに使えます。

-kはデフォルトなので -mのほうを使うことがたまにあります。(-hの方が優先なので、-kを指定したいときは-hは使えません。)

du -k

出力結果

4       ./.cache
8       ./.config/htop
4       ./.config/procps
16      ./.config
4       ./.landscape
552     ./test
4       ./dummy
4       ./.local/share/nano
8       ./.local/share
12      ./.local
1072    .

まとめ

  • du個別のフォルダ(ファイル)の使用容量を確認するコマンド
  • du -h : Human-readable : 読みやすく表示
  • du -h | sort -hr :使用量順にソート
  • du -s      :合計だけ表示
  • du -a      : ファイルを含め全部表示
  • du -d [深さ]  : 表示する深さ指定
  • du -k , du -m  :容量の単位を指定
  • find . -name “*.ex” -print0 | du -ch –files0-from=-:特定の拡張子のファイルで絞り込む

今回は、ファイルの容量確認をできるduコマンドについて、詳しく、便利なオプション及び使い方を紹介しました。

findとの組み合わせは、容量不足の時だけでなく、管理中に気になった時に使えると思います。ちょっと長いのでコピペして使ってみてください。

次回は、OSのバージョンを確認することができるunameコマンドについて、紹介します。

unameコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【uname】OSのバージョンが知りたい。Ubuntuのバージョンを確認する方法【Linuxコマンド入門 Part3-8】

Linuxカーネルやハードウェアの情報を確認したい時の確認の仕方。Ubuntuのバージョン確認など、よく使うものを優先的に紹介していきます。

第三回”Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~”では、linuxでどのようにCPUやメモリの状態を確認するか、ネットワークとの接続チェックなどの基本操作を解説しています。

linuxコマンドでシステムのメモリやCPUの状態、プロセスの詳細を確認する方法を紹介するシリーズのサムネイル 13 記事
シリーズ

Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~

Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。

ここまで読んでいただきありがとうございます。

では、次の記事で。 lumenHero