GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでduCommandを使用する方法

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コマンドを使用して、ファイルとディレクトリのディスク使用量を見積もる方法を学びました。読んで楽しんでいただければ幸いです。以下のコメントセクションに提案を残してください。


Linux
  1. Linuxgrepコマンドの使用方法

  2. Linuxでhistoryコマンドを使用する方法

  3. Linux screen コマンドの使用方法

  1. LinuxでSuコマンドを使用する方法

  2. Linux で ldconfig コマンドを使用する方法

  3. Linux で ipset コマンドを使用する方法

  1. Linuxの履歴コマンドの使用方法

  2. LinuxでDisownコマンドを使用する方法

  3. LinuxSSコマンドの使用方法