df (Unix)
df (abréviation de disk free en anglais) est une commande UNIX utilisée pour afficher la valeur d'espace disque disponible des systèmes de fichier dont l'utilisateur possède l'accès en lecture[1]. df est habituellement implémenté en lisant le fichier mtab (en) ou en utilisant statfs
[2].
df apparut pour la première fois dans la version 1 AT&T UNIX.
Exemple
$> df -k
Filesystem 1024-blocks Free % Used Iused % Iused Mounted on
/dev/hd4 32768 16016 52 % 2271 14 % /
/dev/hd2 4587520 1889420 59 % 37791 4 % /usr
/dev/hd9var 65536 12032 82 % 518 4 % /var
/dev/hd3 819200 637832 23 % 1829 1 % /tmp
/dev/hd1 524288 395848 25 % 421 1 % /home
/proc - - - - - /proc
/dev/hd10opt 65536 26004 61 % 654 4 % /opt
Usage
Les spécifications pour df sont :
df [-k] [-P|-t] [-del] [file...]
- -k
- Utilise les unités 1024 octets, au lieu de 512 octets par défaut, lors de l'écriture des chiffres d'espace. Il s'agit d'un compromis pour conserver les scripts historiques utilisant les 512 octets[3].
- -P
- Utilise un format standard, portable, sortie. Il est préformaté ainsi : <fs name>, <total space>, <space used>, <space free>, <percentage used>, :<fs root>
- file
- Écrit la valeur de l'espace libre du système de fichier contenant celui spécifié.
La plupart des systèmes d'exploitation Unix proposent d'autres options. Les versions BSD et GNU Core Utilities incluent :
- -h
- L'espace disque libre est listé en format lisible pour l'homme, c'est-à-dire avec le Système_international_d'unités (ex : 10 Mo).
- -i
- Liste l'utilisation inode
- -l
- Affiche uniquement les systèmes de fichiers locaux.
La version GNU montre par défaut les tailles des blocs en kilo, elle propose :
- -T
- Ajoute les types de fichiers systèmes
Spécification
La Single Unix Specification (SUS) spécifie par défaut l'espace en blocs de 512 octets, et au minimum les noms des fichiers systèmes et la valeur de leur espace disque libre.
L'utilisation d'unités de 512 octets est une pratique historique et maintient la compatibilité avec des utilitaires comme ls, mais cela n'impose pas que les fichiers systèmes soient conçus en blocs de 512 octets.
La liste suivante contient des quantités de df exprimées en unités 512 octets (1024 octets quand -k est précisé), qui doivent être arrondies à l'unité supérieure.
- <fs name>
- Nom du fichier système, dans un format défini par l'implémentation.
- <total space>
- Taille totale du fichier système en unités de 512 octets. Ce chiffre doit inclure : "<espace utilisé>, <espace libre>", plus des espaces réservés par le système non disponibles pour l'utilisateur.
- <space used>
- Valeur totale d'espace alloué à des fichiers existants dans le système de fichier en unités de 512 octets.
- <space free>
- Valeur totale d'espace disponible dans le système de fichiers réservés pour la création de nouveaux fichiers par des utilisateurs non privilégiés, en unités de 512 octets. Quand ce chiffre est inférieur ou égal à 0, il n'est plus possible de créer de nouveau fichier sans en supprimer auparavant, sauf si le processus possède les droits nécessaires.
- <percentage used>
- Pourcentage d'espace normalement disponible qui est actuellement alloué à tous fichiers du système de fichiers. Cela doit être calculé avec la fraction suivante : <space used> / (<space used>+ <space free>) exprimé en pour cent. Ce chiffre peut être plus grand que 100 si <space free> est négatif.
- <fs root>
- Répertoire où apparaît l'arborescence du système de fichiers.
Notes et références
- (en) df -- specification from the Single Unix Specification
- (en) « man statfs »
- http://www.linux-france.org/article/man-fr/man1/df-1.html