Salut, j'ai de nombreux fichiers qui ont été supprimés, mais pour une raison quelconque, l'espace disque associé aux fichiers supprimés ne peut pas être utilisé jusqu'à ce que je tue explicitement le processus pour le fichier prenant l'espace disque
$ lsof /tmp/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted)
L'espace disque occupé par le fichier supprimé ci-dessus provoque des problèmes tels que lorsque j'essaie d'utiliser la touche de tabulation pour compléter automatiquement un chemin de fichier, j'obtiens l'erreur bash: cannot create temp file for here-document: No space left on device
Mais après avoir exécuté kill -9 1623
l'espace pour ce PID est libéré et je ne reçois plus l'erreur.
Mes questions sont:
- pourquoi cet espace n'est-il pas immédiatement libéré lors de la première suppression du fichier?
- quelle est la meilleure façon de récupérer l'espace fichier associé aux fichiers supprimés?
et veuillez me faire savoir toute terminologie incorrecte que j'ai utilisée ou toute autre information pertinente et pertinente concernant cette situation.
la source
Comme d'autres l'ont dit, il
lsof
peut être utilisé pour répertorier tous les fichiers supprimés qui sont toujours sur le disque en raison des descripteurs de fichiers ouverts. Cependant, cela peut être une très longue liste. Voici une commande qui répertorie ces fichiers triés par taille croissante en octets:Il peut y avoir une façon plus succincte de le faire, mais la commande ci-dessus a fonctionné pour moi.
la source
L'espace n'est pas immédiatement libéré car le processus en cours a toujours un descripteur de fichier ouvert sur le fichier qui vient d'être supprimé. Après tout, si un processus essaie toujours d'utiliser un fichier, vous ne voulez probablement pas vraiment que le noyau s'en débarrasse (le fichier). Cela pourrait rendre le processus un peu bouleversé. La meilleure façon (et pour autant que je sache) de libérer de l'espace est de faire exactement ce que vous avez fait - tuer le processus.
la source
(Mint 17.1)
TL; DR:
sudo baobab
(Disk Usage Analyzer).root
la corbeille de l'utilisateur.Le contexte
J'étais coincé avec un espace sans cesse décroissant alors que je supprimais constamment des fichiers. J'ai installé le
trash-cli
paquet pour vider la corbeille, mais cela n'a pas aidé. Enfin, j'ai remarqué que lorsque j'ai exécutébaobab
(Disk Usage Analyzer dans l'interface graphique, au moins sur Mint 17.1) pour inspecter la structure de l'espace disque, il a donné un avertissement que certains dossiers n'étaient pas accessibles. Je l'ai donc exécuté enroot
utilisantsudo baobab
. Cela a révélé le problème. Beaucoup de fichiers qui avaient été supprimés étaient dans la poubelle de l'root
utilisateur, pas le mien. Ainsi, je n'ai pas pu libérer de l'espace. Ensuite, j'ai simplement vidé la corbeille en utilisant comme root (sudo trash-cli
) et tout mon espace est revenu.la source
Essayez d'utiliser la commande ci-dessous
puis tuez le pid du fichier supprimé.
la source