Estaba jugando con OSX find
y GNU find
desde el findutils
paquete (v 4.4.2) con fines de aprendizaje. GNU find tiene una -delete
opción, que se explica por sí misma. Lo que no es, sin embargo, es que "El uso de -delete activa automáticamente la opción -depth", lo que significa que eliminará recursivamente el contenido del directorio de trabajo actual sin advertencia.
El problema es que accidentalmente ejecuté dicho comando en mi sistema, en lugar de la sesión de shell remota.
Traté de investigar los aspectos internos, -delete
pero todo lo que pude encontrar fue documentos oficiales de GNU findutils .
Cuando me di cuenta de lo que sucedió, apagué el sistema para evitar la posible sobrescritura de sectores. Luego, tomé un "enfoque de recuperación estándar" usando
- EaseUS Data Recovery Wizard para Mac
- Prosoft Data Rescue 3
- Taladro de disco
- Mac Data Recovery Guru
pero sin resultados. El directorio eliminado era en realidad un repositorio git con muchos archivos pequeños. Dado que se realizó una operación de disco cercana a cero desde la eliminación, dudo que todos puedan sobrescribirse. No es una situación desastrosa porque obviamente estoy sacando el contenido del repositorio de forma remota. Aún así, pierdo ramas y archivos locales no publicados en .gitignore.
¿Hay algún mecanismo OSX que pueda usar para recuperar estos archivos?
fuente
Respuestas:
OS X maintains deleted files in the local time machine storage area if you have enabled (or the system has enabled) a local store.
If you can make a snapshot, you can enter Time Machine and recover these files. If you get an error like **Local snapshots are not enabled. ** then you don't have the ability to recover the files from the OS level. Since there is no other undelete mechanism in the filesystem, you have a good survey of recovery tools (I use Data Rescue pretty much exclusively) and your only third option would be to locate a viable backup of the system or the files in question.
I make a habit of enabling the local store and forcing a snapshot before doing anything as root or anything I might regret from the terminal. Having made mistakes like this over the years, I've learned to have that "premonition" to check backup and double check the syntax. In general, I try to make a list of files to delete and save it to a file so I have a pause and a second script that does the removal rather than piping them together. It's not going to help, but it's my experience and way to mitigate when I can't ensure a good backup.
fuente