¿Cómo verificar qué está bloqueando un archivo?

11

Me di cuenta de que a veces Mail.app bloquea archivos. El bloqueo en sí mismo permite que los archivos se muevan a la Papelera, pero no permite que la Papelera se vacíe. (Tal vez debería cambiarse el nombre de Basura a Thrash en este caso)

¿Hay alguna forma (a través de un comando de terminal o una aplicación) para ver qué aplicación bloquea el archivo y / o desbloquea el archivo sin salir de la aplicación?

    
pregunta Michal M 17.08.2011 - 13:14

3 respuestas

13

Como dice Rabarberski, lsof se puede usar para encontrar cualquier proceso que tenga el archivo abierto. Tenga en cuenta que necesita ejecutar el programa como root, es decir, usar sudo , y que puede asignar la ruta al archivo que le interesa como argumento, por lo que no es necesario realizar la invocación grep en el insinuación que señala Rabarberski. Además, si un proceso mantiene un bloqueo en el archivo, se supone que debe poder verlo desde la columna FD en la salida lsof . Vea la página del manual para los detalles. (Cuando ejecuto sudo lsof en mi máquina, no veo archivos bloqueados, así que no garantizo que esto funcione correctamente en la Mac. sudo es, después de todo, un programa genérico de Unix, y posiblemente algunas características no funcionen. en OSX.)

No puede desbloquear un archivo sin matar el proceso que mantiene el bloqueo. Pero puede eliminarlo con rm desde la línea de comandos.

    
respondido por el Harald Hanche-Olsen 17.08.2011 - 14:14
6

Como han señalado otros, lsof hace el truco. Para simplificar aún más la tarea, sugiero la aplicación (gratuita) "Lo que me mantiene" (URL: enlace ) que es básicamente una interfaz para lsof y tiene algunas opciones de ahorro de tiempo.

    
respondido por el Agos 17.08.2011 - 15:10
2

Aparentemente, el comando de terminal lsof ("lista de archivos abiertos") se puede usar para hacer eso: enlace

    
respondido por el Rabarberski 17.08.2011 - 13:29

Lea otras preguntas en las etiquetas