terminar - renombrar archivos linux masivo
¿Cómo saber qué proceso está usando un archivo en Linux? (2)
Intenté eliminar un archivo en Linux usando rm -rf file_name
, pero obtuve el error:
rm: file_name not removed. Text file busy
¿Cómo puedo saber qué proceso está utilizando este archivo?
La respuesta de @Jim es correcta: fuser
es lo que quieres.
Además (o alternativamente), puede usar lsof
para obtener más información, incluido el nombre de usuario, en caso de que necesite permiso (sin tener que ejecutar un comando adicional) para detener el proceso. (Por supuesto, si lo que desea es eliminar el proceso, el fuser
puede hacerlo con su opción -k
. Puede hacer que el fuser
use otras señales con la opción -s
; consulte la página de manual para obtener más información).
Por ejemplo, con una tail -F /etc/passwd
ejecutándose en una ventana:
ghoti@pc:~$ lsof | grep passwd
tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
Tenga en cuenta que también puede usar lsof
para averiguar qué procesos están usando sockets particulares. Una excelente herramienta para tener en tu arsenal.
Puedes usar el comando del fuser
, como:
fuser file_name
Recibirá una lista de procesos utilizando el archivo.
Puede usar diferentes indicadores con él, para recibir una salida más detallada.
Puede encontrar más información en el artículo de Wikipedia del fusor , o en las páginas del manual.