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?
Puede usar el fusercomando, como:
fuser file_name
Recibirá una lista de procesos que utilizan el archivo.
Puede usar diferentes banderas 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 manpáginas.
fuserimplementaciones sean iguales o funcionen de la misma manera. Incluso si-iestá definido en POSIX, la implementación particular que está utilizando no tiene necesariamente las mismas opciones que las descritas en el artículo de Wikipedia. Por ejemplo, estoy usando AIX en este momento, y elfuserdisponible en este sistema tampoco tiene la-iopción.fusernilsofestaban trabajando para mí en un invitado de virtualbox. Esta respuesta me salvó.La respuesta de @ jim es correcta,
fuseres lo que quieres.Además (o alternativamente), puede usar
lsofpara obtener más información, incluido el nombre de usuario, en caso de que necesite permiso (sin tener que ejecutar un comando adicional) para finalizar el proceso. (Aunque, por supuesto, si lo que desea es matar el proceso,fuserpuede hacerlo con su-kopción. Puedefuserusar otras señales con la-sopción; consulte la página del manual para obtener más detalles).Por ejemplo, con una
tail -F /etc/passwdejecución en una ventana:Tenga en cuenta que también puede utilizar
lsofpara averiguar qué procesos utilizan sockets particulares. Una excelente herramienta para tener en tu arsenal.fuente
lsof | head -1para ver todos los encabezados.lsof | grep -E "PID|<your_process_name>"muestra tanto la primera línea como el proceso que desea consultar.Como se muestra en la imagen adjunta:
fuente
treeLee algo de stdin? Si es así, ¿qué hace con esa entrada?tree, nolsof. Por lo que tengo entendido,treeno lee de la entrada estándar, por lo tanto, la salida delsofse descarta cuando ejecutalsof | tree .... Si eso es correcto, entonceslsof | tree MyFoldes lo mismo quetree MyFold, que solo muestra el contenido, pero no qué archivos abre algún proceso.