Hola, tengo muchos archivos que se han eliminado, pero por alguna razón el espacio en disco asociado con los archivos eliminados no se puede utilizar hasta que elimine explícitamente el proceso del archivo que ocupa el espacio en disco
$ lsof /tmp/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted)
El espacio en disco ocupado por el archivo eliminado anterior causa problemas, como cuando intento usar la tecla de tabulación para completar automáticamente una ruta de archivo. Obtengo el error bash: cannot create temp file for here-document: No space left on device
Pero después de ejecutar kill -9 1623
el espacio para ese PID se libera y ya no obtengo el error.
Mis preguntas son:
- ¿Por qué este espacio no se libera inmediatamente cuando el archivo se elimina por primera vez?
- ¿Cuál es la mejor manera de recuperar el espacio de archivos asociado con los archivos eliminados?
y hágame saber cualquier terminología incorrecta que haya utilizado o cualquier otra información relevante y pertinente con respecto a esta situación.
fuente
Como han dicho otros,
lsof
se puede usar para enumerar todos los archivos eliminados que todavía están en el disco debido a los descriptores de archivos abiertos. Sin embargo, esta puede ser una lista muy larga. Aquí hay un comando que enumera estos archivos ordenados por tamaño ascendente en bytes:Puede haber una forma más sucinta de hacer esto, pero el comando anterior funcionó para mí.
fuente
El espacio no se libera inmediatamente porque el proceso en ejecución todavía tiene un identificador de archivo abierto para el archivo que se acaba de eliminar. Después de todo, si un proceso todavía está tratando de usar un archivo, probablemente no desee que el núcleo lo elimine (el archivo). Eso podría hacer que el proceso sea un poco molesto. La mejor (y única, hasta donde yo sé) para liberar el espacio es hacer lo que hiciste: matar el proceso.
fuente
(Menta 17.1)
TL; DR:
sudo baobab
(Analizador de uso de disco).root
la basura del usuario.Contexto
Estaba atascado con un espacio cada vez menor mientras borraba constantemente archivos. Instalé el
trash-cli
paquete para vaciar la basura, pero esto no ayudó. Finalmente, noté que cuando ejecutébaobab
(Disk Usage Analyzer en GUI, al menos en Mint 17.1) para inspeccionar la estructura del espacio en disco, me advirtió que algunas carpetas no eran accesibles. Entonces lo ejecuté comoroot
usandosudo baobab
. Esto reveló el problema. Muchos de los archivos que se habían eliminado estaban en la papelera delroot
usuario, no en mi propio usuario. Por lo tanto, no pude liberar el espacio. Luego simplemente vacié la basura usando como root (sudo trash-cli
) y todo mi espacio regresó.fuente
Intenta usar el siguiente comando
y luego mata el pid del archivo eliminado.
fuente