Passer au contenu principal

Du et df donnent un résultat différent : pourquoi ?

Il arrive que les commandes du et df donnent un résultat différent, parfois de plusieurs centaines de Gio. Mais pourquoi ?

Avant-propos

La commande du regarde la taille du dossier / fichier passé en paramètre alors que df va regarder les métadonnées d’une partition pour en afficher l’occupation.

Donc la question du résultat différent ne vaut que si on compare la sortie de du sur un dossier qui est un point de montage et qui ne contient pas d’autres points de montage (ou si on utilise du -x, qui fait que du n’analyse pas les autres points de montage).

Plusieurs réponses possibles

Sur ce commentaire sur StackOverflow (lien archive.org), on apprend que plusieurs raisons peuvent expliquer des résultats différents.

Ce commentaire nous donne 3 exemples :

  • des applications qui utilisent encore des fichiers supprimés. On peut vérifier ça avec la commande lsof +aL1
  • des fichiers plus grands que leur vraie taille, ce qui va tromper du mais pas df
  • si des fichiers étaient présents dans un dossier avant qu’un système de fichier soit monté sur ce dossier, du ne les verra pas et ne les comptabilisera pas, contrairement à df