cyb3rpunk

Recuperar archivos eliminados con «rm» es posible, a veces.

Posted in Comandos, Consola, Tips by ramonovski on abril 20, 2011

Eliminar un archivo con un típico «rm archivo» en los inicios de una persona en entornos Unix es más común que hacer un ls en la terminal de windows. Cuando sea el caso y eliminemos sin querer un archivo con el comando rm es posible recuperarlo siempre y cuando exista un proceso en ejecución que involucre al archivo eliminado.

 
Un caso hipotético.

Lanzo el navegador Opera mediante un script llamado oopera.sh, el navegador sigue abierto y por accidente he eliminado el archivo:

rm Scripts/oopera.sh

 
Lo primero que hay que hacer es listar los procesos del sistema y comprobar que el archivo que hemos eliminado se encuentre ahí:

ps -A | grep -i opera
PID TTY TIME CMD
4092 ? 00:00:00 oopera.sh
4093 ? 00:11:35 opera
4219 ? 00:00:00 operapluginclean
12369 ? 00:00:02 operapluginwrap

 

En el directorio /proc están listados y organizados los procesos del Sistema
El subdirectorio /proc/NumeroDelPID/fd/ contiene (entre otras cosas) un enlace simbólico de cada archivo, proceso, socket, directorio activo en el Sistema.
fd = file descriptor

 

Teniendo el PID (Identificador del Proceso) del archivo se comprueba el estado del archivo y al mismo tiempo el nombre del enlace simbólico:

ls -l /proc/4092/fd/* | grep oopera.sh
lr-x------ 1 ramonoid ramonoid 64 Apr 20 13:57 /proc/4092/fd/255 -> /home/ramonoid/Scripts/oopera.sh (deleted)

Estado: (deleted)
Enlace: 255

 
Y ya localizado el enlace, lo único que queda es hacer la restauración con un simple cp:

cp /proc/4092/fd/255 $HOME/Scripts/oopera.sh

 
:wq

Tagged with: , , ,

6 respuestas

Subscribe to comments with RSS.

  1. Exe U. said, on abril 21, 2011 at 12:13 am

    Muy bueno! cosas como estas son las que me muestran todo lo que me falta por aprender sobre GNU/Linux.

  2. gnusosa said, on abril 22, 2011 at 10:26 am

    Dicen por ahí que meterse con /proc es mala idea. Pero igual mandalos a la verga.

    • msx said, on julio 9, 2012 at 7:59 pm

      HAHAHA, excelente reflexión capo.

      @ramonovski
      El trick me lo enseño un amigo hace tiempo y lo uso para evitar correr movies con flash cuando las veo desde *cof* cuevana *cof*, la idea es básicamente la misma:
      1. hacer un ps aux|grep flashplugin
      2. ir al directorio FD del PID indicado
      3. mplayer {descriptor}

      Además de esta forma también con un simple cp se pueden guardar en el disco.
      Salu2

  3. mario said, on agosto 12, 2011 at 1:38 pm

    gracias por compartir la info

  4. linuxero said, on enero 16, 2017 at 5:51 am

    caballero me haz sorprendido y con esto salve la base de datos de musica que habia eliminado.


Replica a gnusosa Cancelar la respuesta