Para recuperar ficheros borrados en linux se puede usar la aplicacion foremost.
Foremost rastrea el disco duro en busca de achivos y los identifica mediante cadenas de datos hexadecimales propios del tipo de ficheros que estamos buscando.
Es posible configurar a foremeost para que busque los ficheros que contengan la cadena exadecimal que queramos.
Por ejemplo, en mi caso que he perdido un script en php que comenzaba con:
#!/usr/bin/php
configuraré a foremost para que encuentre los archivos que comiencen con estos caracteres, a ver si hay suerte.
1) Hay que pasar el texto a buscar a hexadecimal. Podemos usar xxd desde la consola de linux
echo "#!/usr/bin/php" | xxd
0000000: 2321 2f75 7372 2f62 696e 2f70 6870 0a #!/usr/bin/php.
Quitamos el 0a que es el retorno de carro y ponemos \x
\x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70
2) Vamos al fichero de configuracion de foremost en /etc/foremost.conf
y añadimos la linea:
php y 100000 \x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70
3) Ejecutamos foremost que buscara los ficheros que contengan la cadena especificada y los ficheros encontrados los guardará en el directorio ./recuperados
# foremost -i /dev/sda1 -o ./recuperados
4) Cafe, siesta o peli ... ya que esto puede tardar.
5) Y en el directorio tendremos todos los ficheros que ha encontrado en el disco duro indicado que tienen la cadena especificada. Muchos puede no ser válidos o estar corruptos; ... que es lo mas frecuente.
6) Para encontrar lo que buscamos podemos usar:
# cat * | grep -l textoabuscar
aunque como hay ficheros binarios este comano NO me ha funcionado.
7) Finalmente he hecho un pequeño bash-script que me soluciona el problema y que me dice los ficheros que tienen contienen el textoabuscar:
#!/bin/bash/
for file in $(ls); do
if grep -q 'textoabuscar' $file
then
echo $file
fi
done
exit 0
Ejecutar el bash-script en el directorio donde esten los archivos recuperados y os dirá los archivos que contienen el textoabuscar.Y ahora solo queda abrir los archivos y ver si es el script que tanto tiempo habia costado programar y que se habia borrado por error.
En mi caso ha habido suerte !!!