「大きいファイルだけを一覧表示して、不要なものを削除したい」
Linuxサーバーを運用していると、ディスク容量の逼迫は避けて通れない問題です。原因となっている巨大ファイルをすばやく特定できるかどうかで、対処のスピードが大きく変わります。
この記事では、lsコマンドでファイルサイズが大きい順に表示する方法をはじめ、duコマンドでディレクトリごとの容量を調べる方法、findコマンドで特定サイズ以上のファイルだけを検索する方法まで、現場で使える実践テクニックを解説します。
・ls -lSでファイルサイズが大きい順に表示する方法
・duコマンドでディレクトリごとの容量を調べる方法
・findコマンドで指定サイズ以上のファイルを検索する方法
・ディスク容量逼迫時の調査手順(df→du→find→lsの流れ)
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
ls -lSでファイルサイズが大きい順に表示する(基本)
ファイルサイズ順に並べる最も基本的な方法が、lsコマンドの-Sオプション(大文字のS)です。-l(詳細表示)と組み合わせて使います。$ ls -lS /var/log/ 合計 52428 -rw-r--r-- 1 root root 28311552 3月 8 10:00 messages -rw-r--r-- 1 root root 15728640 3月 8 09:30 secure -rw-r--r-- 1 root root 5242880 3月 7 23:59 maillog -rw-r--r-- 1 root root 1048576 3月 5 12:00 cron -rw-r--r-- 1 root root 524288 3月 1 08:00 boot.log
ls -lShで人間が読みやすいサイズ表示にする
-Sオプションだけだとサイズがバイト単位の数字で表示されるため、桁が多くなると直感的にわかりにくくなります。-h(human-readable)オプションを追加すると、KB・MB・GBの単位で表示されます。$ ls -lSh /var/log/ 合計 52M -rw-r--r-- 1 root root 27M 3月 8 10:00 messages -rw-r--r-- 1 root root 15M 3月 8 09:30 secure -rw-r--r-- 1 root root 5.0M 3月 7 23:59 maillog -rw-r--r-- 1 root root 1.0M 3月 5 12:00 cron -rw-r--r-- 1 root root 512K 3月 1 08:00 boot.log
ls -lSrで小さい順(昇順)に表示する
-r(reverse)オプションを追加すると、ファイルサイズが小さい順に並びます。$ ls -lSrh /var/log/ 合計 52M -rw-r--r-- 1 root root 512K 3月 1 08:00 boot.log -rw-r--r-- 1 root root 1.0M 3月 5 12:00 cron -rw-r--r-- 1 root root 5.0M 3月 7 23:59 maillog -rw-r--r-- 1 root root 15M 3月 8 09:30 secure -rw-r--r-- 1 root root 27M 3月 8 10:00 messages
duコマンドでディレクトリごとの容量を調べる
lsコマンドはファイル単体のサイズを表示しますが、「どのディレクトリが容量を食っているか」を調べるにはduコマンドを使います。1. 特定ディレクトリの直下を容量順で表示する
du -shと--max-depthを組み合わせて、ディレクトリごとの合計サイズを表示し、sortコマンドで大きい順に並べます。$ du -sh /var/* | sort -rh 1.2G\t/var/log 856M\t/var/cache 324M\t/var/lib 12M\t/var/spool 4.0K\t/var/tmp
・sort -rh:人間が読める単位(K/M/G)を認識して大きい順にソート
2. ディスク全体でどこが容量を使っているか調べる
ルートディレクトリから調べることで、ディスク全体の容量配分が一目でわかります。# du -sh /* 2>/dev/null | sort -rh | head -10 4.2G\t/var 2.1G\t/usr 1.5G\t/home 856M\t/opt 324M\t/boot 12M\t/etc 8.0K\t/tmp 4.0K\t/root
3. サブディレクトリも含めて容量の大きい順に表示する
--max-depthオプションで深さを指定すると、サブディレクトリの内訳まで確認できます。# du -h --max-depth=2 /var | sort -rh | head -10 4.2G\t/var 1.2G\t/var/log 856M\t/var/cache 620M\t/var/cache/yum 324M\t/var/lib 280M\t/var/lib/rpm 156M\t/var/log/audit 12M\t/var/spool
findコマンドで指定サイズ以上のファイルを検索する
「100MB以上のファイルだけを探したい」といった場合は、findコマンドの-sizeオプションが最適です。1. 指定サイズ以上のファイルを検索する
# find / -type f -size +100M 2>/dev/null /var/log/messages-20260301 /var/cache/yum/x86_64/packages/kernel-5.14.0.rpm /home/user1/backup.tar.gz
・-size +100M:100MBより大きいファイル
サイズの指定方法は以下のとおりです。
・+100M:100MBより大きい
・+1G:1GBより大きい
・-10k:10KBより小さい
2. サイズ順にソートして表示する
findの結果にファイルサイズも表示し、大きい順に並べるには、-printfオプションとsortを組み合わせます。# find / -type f -size +50M -printf '%s %p\ ' 2>/dev/null | sort -rn | head -10
・sort -rn:数値として大きい順にソート
3. 人間が読みやすい形式で表示する
findの結果をls -lhに渡すことで、サイズをMB/GB表示にできます。# find / -type f -size +100M -exec ls -lh {} \\; 2>/dev/null | sort -k5 -rh -rw-r--r-- 1 root root 1.2G 3月 1 10:00 /var/log/messages-20260301 -rw-r--r-- 1 root root 620M 2月 28 09:00 /var/cache/yum/x86_64/packages/kernel-5.14.0.rpm -rw-r--r-- 1 root root 150M 3月 5 14:30 /home/user1/backup.tar.gz
実務Tips:ディスク容量が逼迫した時の調査手順
サーバーのディスク容量が足りなくなった時、以下の手順で原因を特定できます。1. まずdfでどのパーティションが逼迫しているか確認する
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 47G 3.0G 94% / /dev/sda2 100G 12G 88G 12% /home
2. duで容量を食っているディレクトリを絞り込む
# du -sh /* 2>/dev/null | sort -rh | head -5
3. findで巨大ファイルを特定する
# find /var -type f -size +100M -exec ls -lh {} \\; 2>/dev/null | sort -k5 -rh
4. ls -lShで該当ディレクトリの中身を確認して対処する
# ls -lSh /var/log/
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| ファイルサイズが大きい順に表示 | ls -lSh ディレクトリ |
| ファイルサイズが小さい順に表示 | ls -lSrh ディレクトリ |
| ディレクトリごとの容量を大きい順に表示 | du -sh /var/* | sort -rh |
| サブディレクトリの内訳も含めて表示 | du -h --max-depth=2 /var | sort -rh |
| 100MB以上のファイルを検索 | find / -type f -size +100M |
| 巨大ファイルをサイズ順で一覧表示 | find / -type f -size +50M -printf '%s %p\
' | sort -rn |
| ディスク使用率の確認 | df -h |
Linuxのディスク管理を体系的にマスターしたい方へ
ディスク容量の逼迫はサーバー障害の原因になります。ls・du・findの使い方を覚えることで、問題を素早く特定できるようになります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:拡張子ごとにファイルを並べて表示する方法|ls -Xオプションの使い方と実践例
- 前のページへ:ps2pdfコマンドでポストスクリプトファイルをPDF形式に変換する方法|用紙サイズと圧縮オプション
- この記事の属するカテゴリ:Linuxtipsへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます