Jan 02 2008

Cómo recuperar un archivo borrado con lsof

Published by admin at 1:31 pm under SysAdmin

¿Has borrado por equivocación un archivo? Ese mismo archivo ¿lo tienes abierto en alguna otra aplicación? (por ejemplo, estabas escuchando un ogg o un mp3 y mientras lo escuchas, sin querer, lo has borrado en lugar de moverlo a otro directorio, por ejemplo). Bien, pon en “Pause” el reproductor y no lo cierres por nada del mundo :-) . Ahora, usa el sistema virtual de ficheros /proc para recuperarlo:

$ cp /proc/4158/fd/4 elfichero.recuperado

(4158 es el identificador de la aplicación que todavía tiene abierto el fichero que acabas de borrar.En nuestro ejemplo, sería el identificador del player mp3. 4 es el descriptor del fichero que nos interesa (en nuestro ejemplo, el player puede tener abierto más de un fichero, 4 es el identificador que nos interesa). ¿Cómo he obtenido esos números? Con lsof:

$ lsof | grep elfichero.borrado

¿Quieres saber más al respecto? Léete este artículo de Linux.com de donde yo he sacado la información. Te hará falta en el futuro…

8 Responses to “Cómo recuperar un archivo borrado con lsof”

  1. xabion 02 Jan 2008 at 5:24 pm

    Muy útil! Muchas gracias!

  2. [...] Enlace: Cómo recuperar un archivo borrado con lsof [...]

  3. Javion 02 Jan 2008 at 5:52 pm

    Hola, he probado a hacer lsof con un pdf abierto con Evince y sí que me aparece en la lista, pero si abro ficheros gráficos con The GIMP no aparecen ¿sabes a qué se debe?

    Gracias por el truco.

  4. adminon 03 Jan 2008 at 12:16 am

    Javi: cierto, y no sé por qué ocurre. De hecho, un lsof del proceso GIMP muestra en la carpeta fd sólo pipes y enlaces a /dev/pts/0 . A ver si alguien nos lo puede aclarar :-)

  5. Urkoon 03 Jan 2008 at 9:48 am

    De lo del Gimp, yo voy a apostar porque Gimp utiliza un sistema de múltiple Undo, y vete tú a saber cómo lo maneja internamente.
    Una cosa está clara: no relee el archivo original.
    De todos modos, con el Gimp el problema no es tan grave, y la idea sigue siendo la misma: No cierres el programa!!!!! Y simplemente dale a Guardar Como… Si es necesario, Ctrl-Z hasta que hayas vuelto al archivo original.
    No es óptimo, pero bueno, es lo que hay. Supongo que se podría informar a los desarrolladores o hacerte tú mismo un parche.

  6. ochotoon 04 Jan 2008 at 12:44 am

    Probablemente GIMP tiene los ficheros mapeados y deja al SO la gestión del mismo. Ver “man 2 mmap”

  7. jago_ffon 04 Jan 2008 at 5:20 pm

    Muy util y para tener en cuenta :D :D

  8. Blogging Semanal XIIon 04 Jan 2008 at 8:05 pm

    [...] [Linux] Cómo recuperar un archivo borrado con lsof [...]

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment