duf
es una herramienta que ofrece un reemplazo visualmente más amigable para el comando
df -h
, que además incorpora algunas funcionalidades adicionales interesantes.
Al momento de determinar el uso de disco típicamente se recurre al comando
df- h
:
root@vaio:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 5.9G 0 5.9G 0% /dev
tmpfs 1.2G 2.0M 1.2G 1% /run
/dev/sda7 60G 30G 31G 50% /
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.4G 75M 2.3G 4% /dev/shm
/dev/sda1 1.9G 104M 1.7G 6% /boot
/dev/sda4 40G 37G 3.8G 91% /System
/dev/sda5 191G 169G 23G 89% /data
/dev/sda6 173G 166G 6.7G 97% /vault
none 5.9G 0 5.9G 0% /run/user/1000
none 5.9G 0 5.9G 0% /run/user/0
duf es una alternativa escrita en lenguaje Go y liberada bajo licencia MIT, disponible para sistemas operativos Linux, BSD y macOS, que ofrece una funcionalidad similar, aunque más amigable visualmente.
Entre sus características ofrece una salida en colores, se ajusta al ancho de la ventana e incluso permite retornar la salida en formato JSON.
En la página del proyecto en Github se ofrecen paquetes para Linux (Debian, Red Hat y genérico para diferentes arquitecturas), FreeBSD y macOS.
Para instalar
duf
en Debian/Devuan y derivados, descargar la última versión disponible desde la página de
releases:
# wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.deb
Luego instalar el paquete con
dpkg
:
# dpkg -i duf_0.6.2_linux_amd64.deb
Una vez instalado, simplemente ejecutar
duf
:

Se observa que la salida en colores permite identificar rápidamente aquellos discos o particiones con mayor uso.
Las opción
--inodes
permite listar el uso de inodos y
--hide-special
oculta los dispositivos especiales:
root@linuxito:~# duf --inodes --hide-special
╭──────────────────────────────────────────────────────────────────────╮
│ 1 local device │
├────────────┬─────────┬────────┬─────────┬────────┬──────┬────────────┤
│ MOUNTED ON │ INODES │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │
├────────────┼─────────┼────────┼─────────┼────────┼──────┼────────────┤
│ / │ 3276800 │ 160539 │ 3116261 │ 4.9% │ ext4 │ /dev/vda1 │
╰────────────┴─────────┴────────┴─────────┴────────┴──────┴────────────╯
La opción
--json
vuelca la salida en formato JSON, lo cual puede ser de gran utilidad para pasar la información a otro programa o servicio:
root@linuxito:~# duf --json
[
{
"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": "proc",
"device_type": "special",
"mount_point": "/proc",
"fs_type": "proc",
"type": "proc",
"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": "udev",
"device_type": "special",
"mount_point": "/dev",
"fs_type": "devtmpfs",
"type": "tmpfs",
"opts": "rw,nosuid,relatime",
"total": 1038692352,
"free": 1038692352,
"used": 0,
"inodes": 253587,
"inodes_free": 253307,
"inodes_used": 280,
"blocks": 253587,
"block_size": 4096
},
{
"device": "devpts",
"device_type": "special",
"mount_point": "/dev/pts",
"fs_type": "devpts",
"type": "devpts",
"opts": "rw,nosuid,noexec,relatime",
"total": 0,
"free": 0,
"used": 0,
"inodes": 0,
"inodes_free": 0,
"inodes_used": 0,
"blocks": 0,
"block_size": 4096
},
{
"device": "tmpfs",
"device_type": "special",
"mount_point": "/run",
"fs_type": "tmpfs",
"type": "tmpfs",
"opts": "rw,nosuid,noexec,relatime",
"total": 209457152,
"free": 207462400,
"used": 1994752,
"inodes": 255680,
"inodes_free": 255275,
"inodes_used": 405,
"blocks": 51137,
"block_size": 4096
},
{
"device": "/dev/vda1",
"device_type": "local",
"mount_point": "/",
"fs_type": "ext4",
"type": "ext2/ext3",
"opts": "rw,relatime",
"total": 52809904128,
"free": 33645723648,
"used": 16978632704,
"inodes": 3276800,
"inodes_free": 3116249,
"inodes_used": 160551,
"blocks": 12893043,
"block_size": 4096
},
{
"device": "tmpfs",
"device_type": "special",
"mount_point": "/run/lock",
"fs_type": "tmpfs",
"type": "tmpfs",
"opts": "rw,nosuid,nodev,noexec,relatime",
"total": 5242880,
"free": 5242880,
"used": 0,
"inodes": 255680,
"inodes_free": 255677,
"inodes_used": 3,
"blocks": 1280,
"block_size": 4096
},
{
"device": "pstore",
"device_type": "special",
"mount_point": "/sys/fs/pstore",
"fs_type": "pstore",
"type": "pstorefs",
"opts": "rw,relatime",
"total": 0,
"free": 0,
"used": 0,
"inodes": 0,
"inodes_free": 0,
"inodes_used": 0,
"blocks": 0,
"block_size": 4096
},
{
"device": "tmpfs",
"device_type": "special",
"mount_point": "/dev/shm",
"fs_type": "tmpfs",
"type": "tmpfs",
"opts": "rw,nosuid,nodev,noexec,relatime",
"total": 418897920,
"free": 418897920,
"used": 0,
"inodes": 255680,
"inodes_free": 255678,
"inodes_used": 2,
"blocks": 102270,
"block_size": 4096
},
{
"device": "securityfs",
"device_type": "special",
"mount_point": "/sys/kernel/security",
"fs_type": "securityfs",
"type": "securityfs",
"opts": "rw,relatime",
"total": 0,
"free": 0,
"used": 0,
"inodes": 0,
"inodes_free": 0,
"inodes_used": 0,
"blocks": 0,
"block_size": 4096
}
]