J'ai un serveur Ubuntu 20.04 installé sur un seul lecteur de 8 Go. L'installation par défaut a également quelques "snap" installés. Ainsi, il existe des systèmes de fichiers "squashfs" également signalés par le df
commande :
# df -mT
Filesystem Type 1M-blocks Used Available Use% Mounted on
/dev/root ext4 7877 1837 6025 24% /
devtmpfs devtmpfs 465 0 465 0% /dev
tmpfs tmpfs 477 0 477 0% /dev/shm
tmpfs tmpfs 96 1 95 1% /run
tmpfs tmpfs 5 0 5 0% /run/lock
tmpfs tmpfs 477 0 477 0% /sys/fs/cgroup
/dev/loop0 squashfs 18 18 0 100% /snap/amazon-ssm-agent/1566
/dev/loop1 squashfs 94 94 0 100% /snap/core/9066
/dev/loop2 squashfs 55 55 0 100% /snap/core18/1705
/dev/loop3 squashfs 69 69 0 100% /snap/lxd/14804
/dev/loop4 squashfs 70 70 0 100% /snap/lxd/14890
/dev/loop5 squashfs 55 55 0 100% /snap/core18/1754
tmpfs tmpfs 96 0 96 0% /run/user/1000
Comme vous le voyez, il n'y a que 1837 Mo de données stockées sur le (seul) disque.
Maintenant, j'essaie la liste de l'utilisation du disque pour chaque répertoire présent sous la racine (/
) à l'aide de la commande suivante :
# du -smc /* 2>/dev/null
0 /bin
48 /boot
0 /dev
8 /etc
1 /home
0 /lib
0 /lib32
0 /lib64
0 /libx32
1 /lost+found
1 /media
1 /mnt
1 /opt
0 /proc
1 /root
1 /run
0 /sbin
1116 /snap
1 /srv
0 /sys
1 /tmp
1166 /usr
601 /var
2938 total
La sortie montre une grande quantité d'espace disque utilisé par le /snap
répertoire, ce qui bien sûr n'est pas vrai.
Quelle est la bonne façon de compter la taille des fichiers résidant uniquement sur des systèmes de fichiers "disque réel" ? Ajout de l'option -x
à du
ne me met pas à l'aise, car à l'avenir, je pourrais avoir un autre système de fichiers "disque réel" monté sous /home
par exemple et je veux qui doit être compté en du
la sortie.
Réponse acceptée :
Contrairement à df
, autant que je sache du
ne fournit pas de --exclude-type
pour ignorer certains types de système de fichiers. Cependant, vous pouvez exclure des répertoires de niveau supérieur spécifiques par modèle global :
du -smc --exclude=/snap /* 2>/dev/null
ou (pour exclure également les systèmes de fichiers éphémères) et en supposant que votre shell prend en charge l'expansion des accolades :
du -smc --exclude=/{proc,run,sys,snap} /* 2>/dev/null