[Linux] duコマンドの使い方 – ファイルのディスク使用量の表示

duコマンドは、Linuxでファイルやディレクトリのディスク使用量を表示するために使用されます。

基本的な使い方は、du [オプション] [ファイル/ディレクトリ]です。

オプションとして、-hを使うと人間が読みやすい形式(KB, MB, GBなど)で表示され、-sを使うと合計のみが表示されます。

例えば、du -hは現在のディレクトリ内の各ファイルやサブディレクトリのサイズをわかりやすく表示します。

この記事でわかること
  • duコマンドの基本的な使い方
  • 主なオプションの詳細
  • 応用例による活用方法
  • 他のコマンドとの組み合わせ
  • ディスク使用量の管理方法

目次から探す

duコマンドとは

duコマンドは、LinuxやUnix系のオペレーティングシステムで使用されるコマンドの一つで、ディスク使用量を表示するためのツールです。

このコマンドを使うことで、特定のファイルやディレクトリがどれだけのディスクスペースを占有しているかを簡単に確認できます。

dudisk usage の略で、システム管理やファイル管理において非常に便利な機能を提供します。

duコマンドは、デフォルトでは指定したディレクトリ内の各サブディレクトリのサイズを表示しますが、オプションを使うことで表示形式や内容をカスタマイズすることが可能です。

これにより、ディスクスペースの使用状況を把握し、不要なファイルやディレクトリを削除する際の参考にすることができます。

特に、ディスク容量が限られている環境では、duコマンドを活用することで効率的な管理が実現できます。

duコマンドの基本的な使い方

ディレクトリ全体のディスク使用量を表示する

特定のディレクトリ全体のディスク使用量を表示するには、duコマンドにディレクトリのパスを指定します。

以下のコマンドを実行すると、指定したディレクトリのサイズが表示されます。

du /path/to/directory
8       /path/to/directory/subdir1
16      /path/to/directory/subdir2
24      /path/to/directory

この例では、/path/to/directory内の各サブディレクトリのサイズと、全体のサイズが表示されています。

特定のファイルやディレクトリの使用量を表示する

特定のファイルやディレクトリの使用量を確認するには、duコマンドにそのファイルやディレクトリのパスを指定します。

以下のように実行します。

du /path/to/file_or_directory
4       /path/to/file.txt

この例では、file.txtのサイズが表示されています。

サブディレクトリごとの使用量を表示する

サブディレクトリごとの使用量を表示するには、duコマンドに-hオプションを追加すると、サイズが人間に読みやすい形式で表示されます。

以下のコマンドを実行します。

du -h /path/to/directory
4.0K    /path/to/directory/subdir1
8.0K    /path/to/directory/subdir2
12K     /path/to/directory

この例では、各サブディレクトリのサイズがキロバイト単位で表示され、全体のサイズも確認できます。

duコマンドの主なオプション

-hオプション:人間が読みやすい形式で表示

-hオプションを使用すると、ディスク使用量が人間にとって読みやすい形式(KB、MB、GBなど)で表示されます。

これにより、サイズの感覚をつかみやすくなります。

du -h /path/to/directory
4.0K    /path/to/directory/subdir1
8.0K    /path/to/directory/subdir2
12K     /path/to/directory

-sオプション:合計のみを表示

-sオプションを使うと、指定したディレクトリの合計サイズのみを表示します。

サブディレクトリの詳細は表示されません。

du -s /path/to/directory
12      /path/to/directory

-aオプション:ファイルごとの使用量も表示

-aオプションを指定すると、ディレクトリ内のファイルとサブディレクトリの両方のサイズが表示されます。

これにより、個々のファイルの使用量も確認できます。

du -a /path/to/directory
4.0K    /path/to/directory/file1.txt
8.0K    /path/to/directory/subdir1
12K     /path/to/directory

-cオプション:合計を表示

-cオプションを使用すると、指定したディレクトリ内のすべてのサイズの合計が表示されます。

合計サイズが最後に表示されるため、全体の使用量を把握しやすくなります。

du -c /path/to/directory
4.0K    /path/to/directory/file1.txt
8.0K    /path/to/directory/subdir1
12K     total

-dオプション:表示するディレクトリの深さを指定

-dオプションを使うと、表示するディレクトリの深さを指定できます。

例えば、-d 1を指定すると、直下のサブディレクトリのみが表示されます。

du -d 1 /path/to/directory
8       /path/to/directory/subdir1
12      /path/to/directory

–max-depthオプション:指定した深さまでのディレクトリを表示

--max-depthオプションも、表示するディレクトリの深さを指定するために使用します。

-dオプションと同様の機能ですが、より明示的に深さを指定できます。

du --max-depth=1 /path/to/directory
8       /path/to/directory/subdir1
12      /path/to/directory

-xオプション:ファイルシステムをまたがない

-xオプションを使用すると、指定したディレクトリ内でのみサイズを計算し、他のファイルシステムにあるファイルやディレクトリは無視されます。

これにより、特定のファイルシステム内の使用量を正確に把握できます。

du -x /path/to/directory
4       /path/to/directory/subdir1
8       /path/to/directory/subdir2

–excludeオプション:特定のファイルやディレクトリを除外

--excludeオプションを使うと、特定のファイルやディレクトリを表示結果から除外できます。

これにより、不要な情報を省いて必要なデータだけを表示することが可能です。

du --exclude='*.txt' /path/to/directory
8       /path/to/directory/subdir1
12      /path/to/directory

この例では、.txtファイルが除外されて表示されています。

duコマンドの応用例

特定のディレクトリのサイズを確認する

特定のディレクトリのサイズを確認するには、duコマンドを使用してそのディレクトリのパスを指定します。

例えば、/var/logディレクトリのサイズを確認する場合、以下のコマンドを実行します。

du -sh /var/log
1.5G    /var/log

このコマンドにより、/var/logディレクトリの合計サイズが表示されます。

大きなファイルやディレクトリを見つける

ディスク使用量が大きいファイルやディレクトリを見つけるためには、duコマンドとsortコマンドを組み合わせて使用します。

以下のコマンドで、サイズの大きい順に表示できます。

du -ah /path/to/directory | sort -rh | head -n 10
500M    /path/to/directory/largefile.iso
300M    /path/to/directory/subdir1
150M    /path/to/directory/subdir2

このコマンドは、指定したディレクトリ内の大きなファイルやディレクトリを上位10件表示します。

ディスク使用量のレポートを作成する

定期的にディスク使用量のレポートを作成するには、duコマンドを使用して結果をファイルに出力します。

以下のコマンドで、レポートをdisk_usage_report.txtというファイルに保存できます。

du -h /path/to/directory > disk_usage_report.txt
4.0K    /path/to/directory/subdir1
8.0K    /path/to/directory/subdir2
12K     /path/to/directory

このファイルには、指定したディレクトリのディスク使用量が記録されます。

複数のディレクトリのサイズを比較する

複数のディレクトリのサイズを比較するには、duコマンドを使ってそれぞれのディレクトリを指定し、結果を表示します。

以下のコマンドで、/home/user1/home/user2のサイズを比較できます。

du -sh /home/user1 /home/user2
20G     /home/user1
15G     /home/user2

このコマンドにより、2つのディレクトリのサイズを簡単に比較できます。

cronで定期的にディスク使用量を監視する

cronを使用して定期的にディスク使用量を監視することも可能です。

例えば、毎日午前1時にディスク使用量をレポートするスクリプトを実行するには、以下のようにcrontabにエントリを追加します。

0 1 * * * du -h /path/to/directory > /path/to/report/disk_usage_$(date +\%Y\%m\%d).txt

この設定により、毎日午前1時に指定したディレクトリのディスク使用量がレポートとして保存されます。

レポートファイル名には日付が含まれ、過去のデータを簡単に管理できます。

duコマンドと他のコマンドの組み合わせ

duとsortコマンドでサイズ順に並べ替える

duコマンドの出力をsortコマンドと組み合わせることで、ディスク使用量をサイズ順に並べ替えることができます。

以下のコマンドを実行すると、指定したディレクトリ内のファイルやサブディレクトリをサイズの大きい順に表示できます。

du -ah /path/to/directory | sort -rh
500M    /path/to/directory/largefile.iso
300M    /path/to/directory/subdir1
150M    /path/to/directory/subdir2

このコマンドにより、サイズの大きい順にリストが表示され、どのファイルやディレクトリが多くのディスクスペースを占めているかを簡単に把握できます。

duとgrepコマンドで特定のパターンを検索

duコマンドの出力をgrepコマンドと組み合わせることで、特定のパターンにマッチするファイルやディレクトリを検索できます。

例えば、特定の拡張子を持つファイルのサイズを確認する場合、以下のように実行します。

du -ah /path/to/directory | grep '\.txt$'
4.0K    /path/to/directory/file1.txt
2.0K    /path/to/directory/file2.txt

このコマンドでは、.txt拡張子を持つファイルのサイズが表示されます。

duとfindコマンドで特定の条件に合うファイルを探す

duコマンドとfindコマンドを組み合わせることで、特定の条件に合うファイルのサイズを確認できます。

例えば、サイズが1MB以上のファイルを探す場合、以下のように実行します。

find /path/to/directory -type f -size +1M -exec du -h {} +
1.5M    /path/to/directory/largefile1.bin
2.3M    /path/to/directory/largefile2.mp4

このコマンドにより、指定したディレクトリ内の1MB以上のファイルのサイズが表示されます。

duとxargsコマンドで複数のファイルを一括処理

duコマンドの出力をxargsコマンドと組み合わせることで、複数のファイルを一括処理することができます。

例えば、特定のサイズ以上のファイルを削除する場合、以下のように実行します。

du -ah /path/to/directory | sort -rh | head -n 10 | awk '{print $2}' | xargs rm

このコマンドは、サイズの大きい順に上位10件のファイルを削除します。

出力例はありませんが、実行後に指定したファイルが削除されます。

注意して使用してください。

このように、duコマンドは他のコマンドと組み合わせることで、より強力なファイル管理ツールとして活用できます。

よくある質問

duコマンドで表示されるサイズがdfコマンドと異なるのはなぜ?

duコマンドとdfコマンドは、異なる方法でディスク使用量を計算します。

duは指定したファイルやディレクトリの実際の使用量を計測しますが、dfはファイルシステム全体の使用量を表示します。

これにより、duはファイルシステムのメタデータや予約領域を考慮しないため、dfの結果と異なることがあります。

また、duはシンボリックリンクやマウントポイントを無視することがあるため、これも結果の違いに影響します。

duコマンドで隠しファイルのサイズも表示できますか?

はい、duコマンドは隠しファイル(ドットファイル)も表示できます。

隠しファイルは通常のファイルと同様に扱われるため、特別なオプションを指定する必要はありません。

例えば、以下のコマンドを実行すると、隠しファイルを含むすべてのファイルとディレクトリのサイズが表示されます。

du -ah /path/to/directory

このコマンドにより、隠しファイルも含めたサイズが表示されます。

duコマンドの結果が遅い場合、どうすれば改善できますか?

duコマンドの実行が遅い場合、いくつかの改善策があります。

以下の方法を試してみてください。

  • 特定の深さを指定する: -dオプションや--max-depthオプションを使用して、表示するディレクトリの深さを制限します。

これにより、計算するファイル数が減り、速度が向上します。

  • 特定のファイルシステムを指定する: -xオプションを使用して、他のファイルシステムを無視することで、計算を高速化できます。
  • キャッシュを利用する: 一度計算した結果をファイルに保存し、次回はそのファイルを参照することで、再計算を避けることができます。
  • 並列処理を利用する: duコマンドを並列で実行するスクリプトを作成することで、処理速度を向上させることができます。

これらの方法を試すことで、duコマンドの実行速度を改善できる可能性があります。

まとめ

この記事では、duコマンドの基本的な使い方や主なオプション、応用例、他のコマンドとの組み合わせについて詳しく解説しました。

これにより、ディスク使用量を効率的に管理するための手法を学ぶことができました。

今後は、実際にduコマンドを活用して、システムのディスクスペースを最適化し、不要なファイルを整理することをお勧めします。

  • URLをコピーしました!
目次から探す