Le du (utilisation du disque) est la commande utilisée sous Linux pour vérifier la taille du répertoire, y compris ses autres contenus, ainsi que la taille des fichiers individuels.
Lorsque des fichiers et des répertoires ont commencé à consommer une grande quantité d'espace disque sur vos disques durs, du est la meilleure commande pour indiquer quels répertoires ou fichiers en sont la cause.
Dans ce didacticiel, nous apprenons à utiliser la commande du sous Linux pour vérifier l'utilisation du disque (fichiers ou répertoires).
Du commande &Syntaxe
La ligne suivante montre la syntaxe de la commande du :
du [options] [file or directory name]
Par défaut, sans aucune option, il affiche l'utilisation du disque du fichier ou du répertoire donné et pour chacun des sous-répertoires en octets. Si aucun nom de fichier ou de répertoire n'est mentionné, la commande du affiche l'utilisation du disque du répertoire de travail en cours.
# 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
Du commande avec -a
option imprime l'utilisation du disque de tous les fichiers dans le répertoire.
# 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
Vous pouvez voir qu'il imprime la taille totale à la fin de la commande où '152440' est la taille totale (en octets) du répertoire '/boot'.
Obtenir la taille totale du répertoire spécifié
Pour afficher la taille totale d'un répertoire spécifié, vous devez utiliser l'option -s mais ne signalera pas les sous-répertoires. L'exemple suivant montre la taille totale du répertoire '/boot'.
# du -s /boot
152440 /boot
Vous pouvez imprimer l'utilisation totale du disque à partir de plusieurs répertoires comme suit :
# du -s /boot /var
152440 /boot
332168 /var
Format lisible par l'homme
Jusqu'à présent, nous voyons que la taille du disque s'affichait en octets, ce qui n'est pas un format lisible par l'homme. Afin d'imprimer la sortie en kilooctet (K), mégaoctet (M) et gigaoctet (G), nous devons utiliser -h
option.
# 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
Le --si
l'option est comme -h
option mais elle utilise des puissances de 1000 au lieu de 1024.
# 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
Pour obtenir la taille totale d'un répertoire spécifié dans un format lisible par l'homme qui est très couramment utilisé par la commande du, utilisez la commande suivante :
# du -sh /boot
149M /boot
Combiner la taille du total général
Ceci est très utile lorsque vous souhaitez combiner la taille totale sur plusieurs répertoires. L'exemple suivant de la commande combine (-c
) la taille totale du disque spécifié (-s
) répertoire '/boot' et '/var' et imprimer à la dernière ligne dans un format lisible par l'homme (-h
):
# du -csh /boot/ /var
149M /boot/
317M /var
466M total
Afficher la taille individuelle de tous les fichiers et répertoires
En utilisant le caractère générique (*), nous pouvons imprimer la taille individuelle de chaque fichier et répertoire, puis combiner la taille totale à imprimer dans la dernière ligne.
# 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
Commande Du avec correspondance de modèle
En utilisant la commande du, vous pouvez effectuer une correspondance de modèle. Dans la commande suivante, il montre comment trouver la taille du disque de tous les répertoires commençant par 'bo'.
# du -sch /bo*
149M /boot
217M /bootstrap
366M total
Utilisation de la commande du pour obtenir la taille apparente
Le --apparent-size
l'option imprime les tailles apparentes (quantité réelle de données dans le fichier) plutôt que l'utilisation du disque.
# 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
Vérifiez la taille du répertoire qui inclut les liens physiques
Utilisation du -l
ou --count-links
option, les tailles sont comptées plusieurs fois si elles sont liées en dur. Par défaut, les liens physiques ne sont pas affichés.
Par exemple
# 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
Ici, file2.hard est le lien dur pour file2. Remarquez maintenant la sortie avec -l
et sans elle.
# 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 .
Le comportement par défaut des liens symboliques est de ne pas les déréférencer. Pour déréférencer les liens symboliques, -L
ou --dereference
l'option est utilisée
# du -ahL
8.0K ./file2.soft
316K ./file2
12K ./file1
344K .
(Notez que la taille de file2.soft a changé maintenant)
Le -P
ou --no-dereference
l'option ne déréférence pas ces liens symboliques (ce qui est le comportement par défaut comme indiqué ci-dessus).
Afficher l'utilisation du disque dans les sous-répertoires de niveau 'N'
Cette option indique à la commande de répertorier les sous-répertoires et leur taille au niveau de profondeur souhaité.
Par exemple, l'exemple ci-dessous répertorie les répertoires du premier niveau uniquement dans l'arborescence de répertoires actuelle et leur taille. Même la consommation totale d'espace est également signalée ici. Dans le cas où nous définissons le --max-depth=
à zéro, la commande du ne listera aucun sous-répertoire et ne rapportera que la taille du répertoire sélectionné.
# du --max-depth=1 -h /boot/
7.1M /boot/grub
110M /boot/
Du commande pour exclure des fichiers
La commande Du peut exclure un répertoire spécifique en utilisant le --exclude
option. Dans l'exemple suivant, j'ai exclu le répertoire '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/
Voici les deux exemples ci-dessous pour vous montrer comment exclure les fichiers '*.obj' ou '*.jpg'.
# du -h –exclude=’*.obj’
# du -h –exclude=’*.jpg’
Utilisez la commande du pour imprimer l'heure de modification
L'heure de modification des fichiers et/ou répertoires (ou des fichiers/répertoires des sous-répertoires) peut être affichée avec --time
option.
# 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/
Utiliser du avec d'autres commandes
La commande Du peut être combinée avec d'autres commandes à l'aide de pipes (|). Vérifions quelques exemples
Si nous voulons trouver les 3 premiers répertoires par taille dans le répertoire de travail actuel :
# du -skh * | sort -nr | head -3
386M lib
252M share
154M lib64
Afficher tous les fichiers et répertoires triés par taille :
# du -sk * | sort -n
12160 libexec
37552 sbin
58900 bin
70048 src
157456 lib64
257492 share
394504 lib
Conclusion
Dans ce didacticiel, nous avons appris à utiliser la commande du sous Linux pour estimer l'utilisation du disque pour les fichiers et les répertoires. J'espère que vous avez apprécié la lecture et s'il vous plaît laissez vos suggestions dans la section des commentaires ci-dessous.