du(ディスク使用量)は、Linuxで使用されるコマンドで、他のコンテンツを含むディレクトリサイズと、個々のファイルのサイズを確認します。
ファイルとディレクトリがハードディスク上の大量のディスクスペースを消費し始めたとき、duはこれを引き起こしているディレクトリまたはファイルを特定するための最良のコマンドです。
このチュートリアルでは、Linuxでduコマンドを使用してディスク使用量(ファイルまたはディレクトリ)を確認する方法を学習します。
Duコマンドと構文
次の行は、duコマンドの構文を示しています。
du [options] [file or directory name]
デフォルトでは、オプションなしで、指定されたファイルまたはディレクトリのディスク使用量と各サブディレクトリのディスク使用量がバイト単位で表示されます。ファイル名またはディレクトリ名が記載されていない場合は、現在の作業ディレクトリのディスク使用量を表示します。
# du /boot
2508 /boot/grub2/fonts
3068 /boot/grub2/i386-pc
5592 /boot/grub2
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
16 /boot/loader/entries
20 /boot/loader
152440 /boot
-a
を使用したDuコマンド オプションは、ディレクトリ内のすべてのファイルのディスク使用量を出力します。
# du -a /boot
7920 /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
3752 /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
4 /boot/grub2/device.map
4 /boot/grub2/grub.cfg
4 /boot/grub2/grubenv
2504 /boot/grub2/fonts/unicode.pf2
2508 /boot/grub2/fonts
8 /boot/grub2/i386-pc/cs5536.mod
4 /boot/grub2/i386-pc/gcry_rsa.mod
8 /boot/grub2/i386-pc/lsacpi.mod
52 /boot/grub2/i386-pc/gcry_camellia.mod
4 /boot/grub2/i386-pc/cpio_be.mod
......
152440 /boot
コマンドの最後に合計サイズが出力されることがわかります。ここで、「152440」は「/ boot」ディレクトリの合計サイズ(バイト単位)です。
指定したディレクトリの合計サイズを取得
指定したディレクトリの合計サイズを表示するには、-sオプションを使用する必要がありますが、サブディレクトリは報告されません。次の例は、「/boot」ディレクトリの合計サイズを示しています。
# du -s /boot
152440 /boot
次のように、複数のディレクトリから合計ディスク使用量を印刷できます。
# du -s /boot /var
152440 /boot
332168 /var
人間が読める形式
これまでのところ、ディスクサイズは、人間が読める形式ではないバイト単位で表示されていました。出力をキロバイト(K)、メガバイト(M)、およびギガバイト(G)で出力するには、-h
を使用する必要があります。 オプション。
# du -h /boot
2.5M /boot/grub2/fonts
3.0M /boot/grub2/i386-pc
5.5M /boot/grub2
4.0K /boot/efi/EFI/centos
8.0K /boot/efi/EFI
12K /boot/efi
16K /boot/loader/entries
20K /boot/loader
149M /boot
--si
オプションは-h
のようなものです オプションですが、1024ではなく1000の累乗を使用します。
# du --si /boot
2.6M /boot/grub2/fonts
3.2M /boot/grub2/i386-pc
5.8M /boot/grub2
4.1k /boot/efi/EFI/centos
8.2k /boot/efi/EFI
13k /boot/efi
17k /boot/loader/entries
21k /boot/loader
157M /boot
コマンドで非常に一般的に使用される人間が読める形式で指定されたディレクトリの合計サイズを取得するには、次のコマンドを使用します。
# du -sh /boot
149M /boot
総計サイズを組み合わせる
これは、複数のディレクトリの合計サイズを組み合わせる場合に非常に便利です。次のduコマンドの組み合わせの例(-c
)指定された(-s
の合計ディスクサイズ )'/boot'および'/ var'ディレクトリを作成し、最後の行を人間が読める形式(-h
)で出力します。 ):
# du -csh /boot/ /var
149M /boot/
317M /var
466M total
すべてのファイルとディレクトリの個々のサイズを表示する
ワイルドカード(*)を使用して、各ファイルとディレクトリの個々のサイズを印刷し、合計サイズを組み合わせて最後の行に印刷できます。
# du -csh /boot/*
184K /boot/config-4.18.0-147.5.1.el8_1.x86_64
180K /boot/config-4.18.0-80.7.1.el8_0.x86_64
12K /boot/efi
0 /boot/grub
5.5M /boot/grub2
53M /boot/initramfs-0-rescue-3e729c2d7c094902af0333ce40564ffe.img
23M /boot/initramfs-4.18.0-147.5.1.el8_1.x86_64.img
23M /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64.img
16M /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64kdump.img
20K /boot/loader
3.7M /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
3.6M /boot/System.map-4.18.0-80.7.1.el8_0.x86_64
7.6M /boot/vmlinuz-0-rescue-3e729c2d7c094902af0333ce40564ffe
7.8M /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
7.6M /boot/vmlinuz-4.18.0-80.7.1.el8_0.x86_64
149M total
パターンマッチングを使用したDuコマンド
duコマンドを使用すると、パターンマッチングを実行できます。次のコマンドでは、「bo」で始まるすべてのディレクトリのディスクサイズを見つける方法を示しています。
# du -sch /bo*
149M /boot
217M /bootstrap
366M total
duコマンドを使用して見かけのサイズを取得する
--apparent-size
オプションは、ディスク使用量ではなく、見かけのサイズ(ファイル内の実際のデータ量)を出力します。
# du --apparent-size /boot
2505 /boot/grub2/fonts
2544 /boot/grub2/i386-pc
5057 /boot/grub2
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
6 /boot/loader/entries
10 /boot/loader
151852 /boot
ハードリンクを含むディレクトリサイズを確認する
-l
を使用する または--count-links
オプションで、ハードリンクされている場合、サイズは何度もカウントされます。デフォルトでは、ハードリンクは表示されません。
例
# ls -li
total 648
755150 -rw-r--r-- 1 root root 4719 Apr 19 00:46 file1
755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2
755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2.hard
755153 lrwxrwxrwx 1 root root 19 Apr 19 00:57 file2.soft -> /etc/sysconfig/init
ここで、file2.hardはfile2のハードリンクです。ここで、-l
の出力に注目してください。 なしで。
# du -ah
4.0K ./file2.soft
316K ./file2
12K ./file1
340K .
# du -ahl
4.0K ./file2.soft
316K ./file2
12K ./file1
316K ./file2.hard
656K .
シンボリックリンクのデフォルトの動作は、それらを逆参照しないことです。シンボリックリンクを間接参照するには、-L
または--dereference
オプションが使用されます
# du -ahL
8.0K ./file2.soft
316K ./file2
12K ./file1
344K .
(file2.softのサイズが変更されていることに注意してください)
-P
または--no-dereference
オプションはこれらのシンボリックリンクを逆参照しません(これは上記のデフォルトの動作です)。
「N」レベルのサブディレクトリでディスク使用量を表示する
このオプションは、duコマンドに、サブディレクトリとそのサイズを目的の深度レベルまで一覧表示するように指示します。
たとえば、次の例では、現在のディレクトリツリーの最初の層のディレクトリとそのサイズのみを一覧表示しています。スペースの総消費量もここに報告されます。 --max-depth=
を設定した場合 ゼロにすると、duコマンドはサブディレクトリを一覧表示せず、選択したディレクトリのサイズのみを報告します。
# du --max-depth=1 -h /boot/
7.1M /boot/grub
110M /boot/
ファイルを除外するDuコマンド
Duコマンドは、--exclude
を使用して特定のディレクトリを除外できます オプション。次の例では、「grub2」ディレクトリを除外しました:
# du --exclude=grub2 /boot/
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
16 /boot/loader/entries
20 /boot/loader
146848 /boot/
以下は、「*。obj」または「*.jpg」ファイルを除外する方法を示す2つの例です。
# du -h –exclude=’*.obj’
# du -h –exclude=’*.jpg’
duコマンドを使用して変更時刻を出力します
ファイルやディレクトリ(またはサブディレクトリ内のファイル/ディレクトリ)の変更時刻は、--time
で表示できます。 オプション。
# du /boot/ --time
4 2017-03-23 15:03 /boot/grub/locale
2348 2017-03-23 15:03 /boot/grub/fonts
2480 2017-03-23 15:03 /boot/grub/i386-pc
7212 2017-04-05 08:31 /boot/grub
112180 2017-04-05 08:31 /boot/
他のコマンドでduを使用する
Duコマンドは、パイプ(|)を使用して他のコマンドと組み合わせることができます。いくつかの例を確認しましょう
現在の作業ディレクトリでサイズ別に上位3つのディレクトリを検索する場合:
# du -skh * | sort -nr | head -3
386M lib
252M share
154M lib64
サイズでソートされたすべてのファイルとディレクトリを表示します:
# du -sk * | sort -n
12160 libexec
37552 sbin
58900 bin
70048 src
157456 lib64
257492 share
394504 lib
結論
このチュートリアルでは、Linuxでduコマンドを使用して、ファイルとディレクトリのディスク使用量を見積もる方法を学びました。読んで楽しんでいただければ幸いです。以下のコメントセクションに提案を残してください。