Mais parfois, cela ne suffit pas car même après avoir supprimé le fichier, l’espace libre n’augmente pas.
Qu’est-ce qu’un fichier sous Linux ?
Un fichier sous Linux, ou plutôt un nom de fichier est une référence à un inode sur le système de fichier. Cet inode rassemble les méta données (droits d’accès, propriétaire, groupe, date de dernière modification, …) et la liste des blocs contenant les données du fichier. Tant qu’il existe une référence active à un inode sous Linux, les blocs occupés par le fichier sont considérés comme utilisés. Les références possibles à un fichier peuvent être tous les noms de fichiers faisant référence à cet inode (le nom de fichier initial, et tous les « hard links » créés avec la commande « ln ») et tous les processus ayant actuellement ce fichier ouvert.
Donc, tant qu’un fichier restera ouvert par un processus en cours, il existera une référence vers son inode, et l’espace sera toujours utilisé sur le système de fichier. Pour résoudre ce problème, il suffit de retrouver quel est le processus qui utilise ce fichier, et l’arrêter (ou le redémarrer si c’est un service). Soit on se doute de l’application qui utilise ce fichier, soit on peut utiliser l’outil « lsof » comme suit ( « /chemin/vers/le/fichier.log » étant le fichier que l’on vient de supprimer) :
$ lsof /chemin/vers/le/fichier.log
Si le fichier a été supprimé depuis son ouverture, il apparaitre la mention (deleted) derrière le nom de fichier, c’est donc le processus correspondant qu’il faudra arrêter pour récupérer de la place. Après que la dernière référence au fichier aura été supprimé, l’espace utilisé par celui-ci sera libéré.

