L'application la plus couramment utilisée pour afficher l'utilisation du disque sous Linux et Unix est du . Du, signifie d isk u sage, est largement utilisé pour savoir quels fichiers et répertoires ont occupé le plus d'espace disque. Il existe également de nombreux autres outils graphiques et en ligne de commande pour accomplir cette tâche. Nous en avons déjà couvert certains et les avons publiés ici dans notre blog dans le passé. Aujourd'hui, nous allons encore un autre vérificateur d'utilisation du disque nommé duf .
Duf est un utilitaire de ligne de commande pour trouver l'utilisation du disque dans les systèmes de type Linux et Unix. Il affiche les détails d'utilisation du disque dans une belle colonne tabulaire et une disposition conviviale. Vous pouvez même obtenir la sortie d'utilisation du disque en JSON format aussi.
Si la sortie dépasse la partie visible de l'écran, il ajuste automatiquement la largeur du terminal. Vous pouvez trier les résultats par taille totale, type de système de fichiers, espace utilisé et libre, point de montage et inodes. Il est également possible d'afficher, de masquer et d'exclure des détails spécifiques de l'appareil de la sortie.
Duf est la contraction de d isk u sage/f ree. Il s'agit d'une application open source écrite en Go langage de programmation et publié sous licence MIT. Il fonctionne sous GNU/Linux, BSD et Mac OS.
Installer Duf sur Linux
Actuellement, Duf a été empaqueté pour les systèmes d'exploitation Linux basés sur Arch, basés sur DEB et basés sur RPM.
Duf est disponible en AUR . Si vous utilisez Arch Linux ou des variantes d'arch, vous pouvez l'installer à l'aide des programmes d'assistance AUR, par exemple Yay .
$ yay -S duf
Sur les systèmes basés sur DEB tels que Debian, Ubuntu, Linux Mint, téléchargez le fichier d'installation binaire .deb à partir de la page des versions et installez-le à l'aide du gestionnaire de packages de votre système.
$ sudo apt install gdebi
$ sudo gdebi duf_0.3.1_linux_amd64.deb
Sur les systèmes basés sur RPM tels que RHEL, CentOS, Fedora, téléchargez le fichier binaire .rpm et installez-le à l'aide de la commande :
$ sudo rpm -Uvh duf_0.3.1_linux_amd64.rpm
Nous pouvons également le construire à partir de la source. Assurez-vous d'avoir installé le langage GO sur votre système.
Git clone le dépôt duf :
$ git clone https://github.com/muesli/duf.git
La commande ci-dessus clonera le contenu du référentiel en ligne duf dans un répertoire local nommé "duf". Accédez à ce répertoire :
$ cd duf
Compilez et installez-le à l'aide de la commande :
$ go build
Afficher l'utilisation du disque avec Duf sous Linux et Unix
Trouver l'utilisation de l'espace disque avec duf est facile !
Tout ce que vous avez à faire est d'exécuter le duf
commande sans aucune option comme ci-dessous :
$ duf
Exemple de résultat :
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 local device │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤
│ / │ 457.4G │ 412.1G │ 22.1G │ [##################..] 90.1% │ ext4 │ /dev/sda1 │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 7 special devices │
├────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────────┬────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────────┼────────────┤
│ /dev │ 3.8G │ 0B │ 3.8G │ │ devtmpfs │ udev │
│ /dev/shm │ 3.8G │ 235.3M │ 3.6G │ [#...................] 6.0% │ tmpfs │ tmpfs │
│ /run │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │
│ /run/lock │ 5.0M │ 4.0K │ 5.0M │ [....................] 0.1% │ tmpfs │ tmpfs │
│ /run/snapd/ns │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │
│ /run/user/1000 │ 787.0M │ 238.2M │ 548.8M │ [######..............] 30.3% │ tmpfs │ tmpfs │
│ /sys/fs/cgroup │ 3.8G │ 0B │ 3.8G │ │ tmpfs │ tmpfs │
╰────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────────┴────────────╯
Comme vous pouvez le voir dans la sortie ci-dessus, Duf répertorie les détails suivants dans un joli format de colonne tabulaire :
- nombre total d'appareils montés,
- point de montage,
- taille totale de la partition racine,
- taille totale de l'espace disque utilisé et libre,
- utilisation totale du disque en pourcentage,
- type de système de fichiers,
- nom du système de fichiers, etc.
Pour afficher tous les détails, y compris les systèmes de fichiers pseudo, en double et inaccessibles, exécutez :
$ duf --all
Exemple de résultat :
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 24 local devices │
├────────────────────────────────┬────────┬────────┬───────┬───────────────────────────────┬──────────┬─────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├────────────────────────────────┼────────┼────────┼───────┼───────────────────────────────┼──────────┼─────────────┤
│ / │ 457.4G │ 412.1G │ 22.1G │ [##################..] 90.1% │ ext4 │ /dev/sda1 │
│ /run/snapd/ns/multipass.mnt │ 0B │ 0B │ 0B │ │ nsfs │ nsfs │
│ /snap/bashtop/128 │ 23.1M │ 23.1M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop0 │
│ /snap/bashtop/134 │ 23.1M │ 23.1M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop1 │
│ /snap/chromium/1298 │ 162.1M │ 162.1M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop2 │
│ /snap/chromium/1320 │ 162.0M │ 162.0M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop3 │
│ /snap/core/9804 │ 96.6M │ 96.6M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop4 │
│ /snap/core/9993 │ 97.1M │ 97.1M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop6 │
│ /snap/core18/1880 │ 55.0M │ 55.0M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop15 │
│ /snap/core18/1885 │ 55.4M │ 55.4M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop5 │
│ /snap/gifcurry/8 │ 149.0M │ 149.0M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop7 │
│ /snap/gnome-3-26-1604/100 │ 140.8M │ 140.8M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop16 │
│ /snap/gnome-3-26-1604/98 │ 140.8M │ 140.8M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop8 │
│ /snap/gnome-3-28-1804/116 │ 160.2M │ 160.2M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop14 │
│ /snap/gnome-3-28-1804/128 │ 161.5M │ 161.5M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop10 │
│ /snap/gnome-3-34-1804/33 │ 255.6M │ 255.6M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop9 │
│ /snap/gnome-3-34-1804/36 │ 255.6M │ 255.6M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop11 │
│ /snap/gnome-system-monitor/145 │ 2.2M │ 2.2M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop17 │
│ /snap/gnome-system-monitor/148 │ 2.2M │ 2.2M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop18 │
│ /snap/gtk-common-themes/1502 │ 54.9M │ 54.9M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop12 │
│ /snap/gtk-common-themes/1506 │ 62.1M │ 62.1M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop13 │
│ /snap/multipass/2531 │ 220.0M │ 220.0M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop19 │
│ /snap/multipass/2604 │ 220.0M │ 220.0M │ 0B │ [####################] 100.0% │ squashfs │ /dev/loop20 │
│ /sys/fs/fuse/connections │ 0B │ 0B │ 0B │ │ fusectl │ fusectl │
╰────────────────────────────────┴────────┴────────┴───────┴───────────────────────────────┴──────────┴─────────────╯
╭─────────────────────────────────────────────────────────────────────────────────╮
│ 1 FUSE device │
├─────────────────────┬──────┬──────┬───────┬──────┬─────────────────┬────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├─────────────────────┼──────┼──────┼───────┼──────┼─────────────────┼────────────┤
│ /run/user/1000/gvfs │ 0B │ 0B │ 0B │ │ fuse.gvfsd-fuse │ gvfsd-fuse │
╰─────────────────────┴──────┴──────┴───────┴──────┴─────────────────┴────────────╯
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ 32 special devices │
├─────────────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬─────────────┬─────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├─────────────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼─────────────┼─────────────┤
│ /dev │ 3.8G │ 0B │ 3.8G │ │ devtmpfs │ udev │
│ /dev/hugepages │ 0B │ 0B │ 0B │ │ hugetlbfs │ hugetlbfs │
│ /dev/mqueue │ 0B │ 0B │ 0B │ │ mqueue │ mqueue │
│ /dev/pts │ 0B │ 0B │ 0B │ │ devpts │ devpts │
│ /dev/shm │ 3.8G │ 224.1M │ 3.6G │ [#...................] 5.7% │ tmpfs │ tmpfs │
│ /proc │ 0B │ 0B │ 0B │ │ proc │ proc │
│ /proc/sys/fs/binfmt_misc │ 0B │ 0B │ 0B │ │ binfmt_misc │ binfmt_misc │
│ /run │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │
│ /run/lock │ 5.0M │ 4.0K │ 5.0M │ [....................] 0.1% │ tmpfs │ tmpfs │
│ /run/snapd/ns │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │
│ /run/user/1000 │ 787.0M │ 238.2M │ 548.8M │ [######..............] 30.3% │ tmpfs │ tmpfs │
│ /sys │ 0B │ 0B │ 0B │ │ sysfs │ sysfs │
│ /sys/fs/bpf │ 0B │ 0B │ 0B │ │ bpf │ none │
│ /sys/fs/cgroup │ 3.8G │ 0B │ 3.8G │ │ tmpfs │ tmpfs │
│ /sys/fs/cgroup/blkio │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/cpu,cpuacct │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/cpuset │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/devices │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/freezer │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/hugetlb │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/memory │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/net_cls,net_prio │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/perf_event │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/pids │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/rdma │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/systemd │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │
│ /sys/fs/cgroup/unified │ 0B │ 0B │ 0B │ │ cgroup2 │ cgroup2 │
│ /sys/fs/pstore │ 0B │ 0B │ 0B │ │ pstore │ pstore │
│ /sys/kernel/config │ 0B │ 0B │ 0B │ │ configfs │ configfs │
│ /sys/kernel/debug │ 0B │ 0B │ 0B │ │ debugfs │ debugfs │
│ /sys/kernel/security │ 0B │ 0B │ 0B │ │ securityfs │ securityfs │
│ /sys/kernel/tracing │ 0B │ 0B │ 0B │ │ tracefs │ tracefs │
╰─────────────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴─────────────┴─────────────╯
Exclure les détails spécifiques de l'appareil de la sortie
Parfois, vous souhaiterez peut-être exclure certains détails de la sortie. Par exemple, la commande suivante exclura les détails des périphériques spéciaux (par exemple, /run/lock
, /sys/fs/bpf
).
$ duf --hide-special
Cela affichera les détails d'utilisation du disque des périphériques locaux uniquement, c'est-à-dire éliminera les périphériques spéciaux de la sortie :
╭──────────────────────────────────────────────────────────────────────────────────────────╮
│ 1 local device │
├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤
│ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤
│ / │ 457.4G │ 412.0G │ 22.1G │ [##################..] 90.1% │ ext4 │ /dev/sda1 │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯
Les autres options prises en charge sont :
--hide-local
--hide-network
--hide-fuse
--hide-loops
--hide-binds
Trier la sortie
Nous pouvons afficher les détails d'utilisation du disque triés selon divers paramètres tels que :
mountpoint
,size
,used
,avail
,usage
,inodes
,inodes_used
,inodes_avail
,inodes_usage
,type
,filesystem
etc.
Par exemple, pour trier la sortie par taille, utilisez cette commande :
$ duf --sort size
Trier la sortie par système de fichiers :
$ duf --sort filesystem
Afficher ou masquer des colonnes spécifiques
De la même manière que pour exclure certains détails de l'appareil de la sortie, nous pouvons également afficher ou masquer une colonne spécifique de la sortie.
La commande suivante affichera la sortie de mountpoint
, size
et usage
colonnes uniquement :
$ duf --output mountpoint,size,usage
Exemple de résultat :
╭─────────────────────────────────────────────────────╮
│ 1 local device │
├────────────┬────────┬───────────────────────────────┤
│ MOUNTED ON │ SIZE │ USE% │
├────────────┼────────┼───────────────────────────────┤
│ / │ 457.4G │ [##################..] 90.1% │
╰────────────┴────────┴───────────────────────────────╯
╭─────────────────────────────────────────────────────────╮
│ 7 special devices │
├────────────────┬────────┬───────────────────────────────┤
│ MOUNTED ON │ SIZE │ USE% │
├────────────────┼────────┼───────────────────────────────┤
│ /dev │ 3.8G │ │
│ /dev/shm │ 3.8G │ [#...................] 6.9% │
│ /run │ 787.0M │ [....................] 0.2% │
│ /run/lock │ 5.0M │ [....................] 0.1% │
│ /run/snapd/ns │ 787.0M │ [....................] 0.2% │
│ /run/user/1000 │ 787.0M │ [######..............] 30.3% │
│ /sys/fs/cgroup │ 3.8G │ │
╰────────────────┴────────┴───────────────────────────────╯
La liste des options prises en charge est :
mountpoint
,size
,used
,avail
,usage
,inodes
,inodes_used
,inodes_avail
,inodes_usage
,type
,filesystem
.
Afficher les détails de l'inode
Si vous souhaitez répertorier les informations d'inode au lieu de bloquer l'utilisation, exécutez cette commande :
$ duf --inodes
Afficher la sortie d'utilisation du disque au format JSON
Au lieu d'afficher la sortie sous forme de colonne tabulaire, nous pouvons l'afficher au format JSON.
Pour ce faire, exécutez :
$ duf --json
Exemple de résultat :
[
{
"device": "sysfs",
"device_type": "special",
"mount_point": "/sys",
"fs_type": "sysfs",
"type": "sysfs",
"opts": "rw,nosuid,nodev,noexec,relatime",
"total": 0,
"free": 0,
"used": 0,
"inodes": 0,
"inodes_free": 0,
"inodes_used": 0,
"blocks": 0,
"block_size": 4096
},
.
.
.
{
"device": "binfmt_misc",
"device_type": "special",
"mount_point": "/proc/sys/fs/binfmt_misc",
"fs_type": "binfmt_misc",
"type": "binfmt_misc",
"opts": "rw,nosuid,nodev,noexec,relatime",
"total": 0,
"free": 0,
"used": 0,
"inodes": 0,
"inodes_free": 0,
"inodes_used": 0,
"blocks": 0,
"block_size": 4096
}
]
Obtenir de l'aide
Pour afficher la section d'aide de l'utilitaire duf, exécutez :
$ duf --help
Exemple de résultat :
Usage of duf:
-all
include pseudo, duplicate, inaccessible file systems
-hide-binds
hide bind mounts (default true)
-hide-fuse
hide fuse devices
-hide-local
hide local devices
-hide-loops
hide loop devices (default true)
-hide-network
hide network devices
-hide-special
hide special devices
-inodes
list inode information instead of block usage
-json
output all devices in JSON format
-output string
output fields: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem
-sort string
sort output by: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem (default "mountpoint")
-width uint
max output width