Por lo general, cuando los editores guardan archivos, eliminan o truncan a 0, liberando así el espacio asignado y luego escriben, lo que asigna nuevo espacio. Esto da como resultado que el sistema de archivos coloque los datos en una ubicación física completamente diferente. Entonces su idea podría no funcionar.
Puede obtener la ubicación física de un archivo usando filefrago hdparm --fibmap, y luego usar ddpara leer esa ubicación física directamente. Aquí describí este proceso en un contexto diferente: /unix//a/85880/30851
En su caso, es más probable que necesite el enfoque general para encontrar datos textuales ... algo como:
strings -n 12 -t d /dev/partition | grep -F 'text snippet'
strings buscará datos ASCII consecutivos (también admite algunas otras codificaciones, no estoy seguro acerca de UTF-8. Si es código o inglés, no lo necesitará) y también imprimirá el desplazamiento donde se encontró.
text snippetdebe ser una muestra de texto exacta y única que recuerde que estaba en la parte del archivo que está buscando [en una sola línea]. (Si no lo sabe exactamente, puede utilizar expresiones regulares).
-n 12es la longitud mínima que stringsbuscará. 12debe ser la longitud de tu text snippet. Este parámetro es opcional, si se proporciona, podría ayudar strings | grepir un poco más rápido.
Le tomará mucho tiempo leer la partición completa, pero si tiene éxito, tendrá un desplazamiento que puede alimentar ddpara tomar el área general y luego eliminar cosas que no pertenecen.
No he hecho nada en ese directorio desde
Si su directorio no es un punto de montaje ... la mayoría de los sistemas de archivos realmente no reservan espacio "por directorio", así que ... todas y cada una de las escrituras en todo el sistema de archivos podrían sobrescribir el bit que está buscando. En una situación de recuperación de datos, generalmente cambia todo en modo de solo lectura.
stringslo tanto , solo localizará algunas partes del archivo a menos que tenga mucha suerte.strings -n16o una longitud mínima razonable, para que sea más rápido.stringspude encontrar el archivo completo en otra parte de la partición. Son casi dos meses de trabajo que no tengo que volver a hacer, y un excelente recordatorio para usar siempre el control de versiones para cualquier cosa importante.