No sabía muy bien cómo explicar claramente de qué va este artículo con el poco espacio que deja el título. Básicamente se trata de poder ejecutar un análisis del espacio utilizado en un sistema de ficheros con du
, pero evitando que al ejecutarlo también analice otros filesystems cuyo punto de montaje se encuentra en niveles «interiores» de ese FS.
Un claro ejemplo sería si quisiéramos saber el espacio ocupado en el filesystem raíz /
, pero evitando otros sistemas de ficheros montados como pueden ser /home
, /tmp
, etc:
[root@foo /]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 1.1M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/fedora_nostromo-root 14G 8.6G 4.7G 65% / tmpfs 2.0G 1.1M 2.0G 1% /tmp /dev/sda1 240M 182M 42M 82% /boot tmpfs 395M 12K 395M 1% /run/user/1000
Si aquí ejecutamos el típico du -h
con una profundidad de un único nivel, ocurre esto:
[root@foo /]# du -h --max-depth=1 / 27M /etc 4.0K /mnt 4.3G /usr 0 /sys 0 /dev 1.1M /run 4.0K /srv 181M /boot 8.0K /tmp 4.0K /media 4.0K /opt 1.4G /var 144K /root 0 /proc 16K /lost+found 3.0G /home 8.8G /
No sólo estamos analizando /
, sino también todos los filesystems montados dentro de ese path. Para evitar esto, du tiene la opción -x
o --one-file-system
:
[root@foo /]# du --help | grep one -x, --one-file-system skip directories on different file systems
Gracias a esa opción, se saltan/excluyen todos los directorios que pertenezcan a otros filesystems:
[root@foo /]# du -h --max-depth=1 --one-file-system / 27M /etc 4.0K /mnt 4.3G /usr 4.0K /srv 4.0K /media 4.0K /opt 1.4G /var 144K /root 16K /lost+found 3.0G /home 8.6G /
Como podéis observar, no se han analizado los directorios que, en ese primer nivel, forman parte de otros filesystems. Lo mismo se puede hacer con más niveles de recursión:
[root@foo /]# du -h --max-depth=2 --one-file-system / 16K /etc/yum 340K /etc/xdg 8.0K /etc/fcoe 104K /etc/alternatives 4.0K /etc/depmod.d 8.0K /etc/ld.so.conf.d 12K /etc/udisks2 4.0K /etc/gnupg 12K /etc/openldap 24K /etc/pulse 20K /etc/yum.repos.d 16K /etc/kernel [...]