
df -h
huellas dactilares:
Filesystem Size Used Avail Use% Mounted on
/dev/root 59G 6.6G 50G 12% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 9.0M 1.9G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 54M 199M 22% /boot
tmpfs 391M 0 391M 0% /run/user/1000
mientras ncdu /
imprime:
Total disk usage: 1.8 GiB Apparent size: 1.8 GiB Items: 176500
¿Por qué uno informa 6,6+ GiB mientras que el otro solo informa 1.8 GiB
?
Respuesta1
El resultado de df
se basa en estadísticas a nivel del sistema de archivos, mientras que ncdu
(y un regular du
) genera sus resultados escaneando directorios, leyendo los tamaños de archivos individuales y resumiéndolos.
Si los du
comandos -style se ejecutan como un usuario no root, no será necesario que tengan acceso completo a todos los directorios y, por lo tanto, es posible que no puedan verlo todo (úselo sudo ncdu
en este caso).
Intente ejecutar du -hs /
y comparar sus resultados con el "uso total del disco" informado por ncdu /
. Es posible que los resultados sean similares... y con du
, es posible que también vea mensajes sobre un grupo de directorios a los que el comando no puede acceder y, por lo tanto, no los tiene en cuenta. Probablemente ocurra lo mismo con ncdu
, pero simplemente oculta los mensajes de error.
Además, me parece que ncdu
es posible que no se haya actualizado para comprender los sistemas de archivos virtuales de las distribuciones modernas de Linux y que pueda confundirse con ellos. En mi sistema Debian 10, ncdu /
informa:
Total disk usage: 75.6 GiB Apparent size: 128.1 TiB Items: 469143
En mi caso, el "Tamaño aparente" es claramente un disparate y una inutilidad. El "Uso total del disco" es aproximadamente el mismo que obtengo con du -hs /
... pero debido a que incluye varios sistemas de archivos virtuales basados en RAM ( devtmpfs
, tmpfs
), es poco probable que este número sea muy útil.
Pero si restrinjo el comando a un solo sistema de archivos (por ejemplo ncdu -x /
), parece que obtengo resultados más razonables, que también coinciden con la salida de du -shx /
dentro de un error de redondeo, y también con la salida de df -h
cuando recuerdo que un sistema de archivos puede necesitar algo de espacio para su metadatos internos.
Otra posible fuente de errores sería si está utilizando funciones avanzadas del sistema de archivos, como instantáneas del sistema de archivos BTRFS. Claro, es posible que solo tenga 1,8 GiB de archivos en su sistema de archivos raíz, pero si el sistema de archivos también contiene dos instantáneas de sus estados anteriores, la cantidad total de espacio en disco utilizado podría ser hasta 3 veces mayor que la suma del tamaño de los archivos. usted (y cualquier du
comando similar) esperar.
Dado que el df
comando obtiene su información preguntando al controlador del sistema de archivos, el valor "usado" más grande que informa podría incluir las instantáneas, que de otro modo podrían ser invisibles hasta que se acceda a ellas con el método adecuado.