Accidentalmente eliminé un archivo ejecutando:
rm -rf ./Desktop/myScript.sh
Creo que es posible recuperar el archivo, porque el rm
comando se elimina temporalmente. ¿Cómo puedo recuperar el archivo eliminado en Mac OSX?
Accidentalmente eliminé un archivo ejecutando:
rm -rf ./Desktop/myScript.sh
Creo que es posible recuperar el archivo, porque el rm
comando se elimina temporalmente. ¿Cómo puedo recuperar el archivo eliminado en Mac OSX?
Respuestas:
MacOS es un sistema operativo Unix y rm
significa "adiós". La interfaz GUI le permite mover un archivo a la papelera (que luego puede recuperar), pero eso no fue lo que hizo. Si tiene una copia de seguridad (p. Ej., Tiene Time Machine ejecutándose), entonces está guardado.
Aclaración
Estrictamente hablando (como señala @ire_and_curses) a rm
simplemente elimina la entrada del directorio para el archivo y deja intactos los bloques de disco que usó. Si pudiera detener el sistema de archivos en el que se encontraba el archivo, existen métodos avanzados mediante los cuales puede intentar volver a descubrir el contenido de esos bloques. También hay algunas herramientas de recuperación que se pueden comprar para recuperar la pérdida. El problema central es que nada más reutiliza ninguno de los bloques de disco representados por su archivo.
MacOS también tiene un comando seguro de eliminación ( srm
) que sobrescribe un archivo antes de unlink
editarlo, lo que lo hace irrecuperable. Uso el unlink
término ya que esta es la llamada del sistema subyacente asociada con el rm
comando de un shell . Esto prepara el escenario para la siguiente parte de esta discusión, a continuación.
Nota al margen
[Debería apresurarme a agregar que incluso si sobrescribe un disco varias veces, hay formas de leer lo que se escribió una docena o más veces antes. Para desinfectar adecuadamente un disco para su eliminación, realmente se requiere un baño de ácido, un gran martillo y una trituradora. ]
unlink
Si ingiere un archivo, disminuye el número de enlaces de inodo del archivo. Si este valor llega a cero, el archivo se elimina del directorio del sistema de archivos y sus bloques de disco se liberan para su reutilización. Esto solo sucede cuando ningún proceso tiene el archivo abierto. A menudo es confuso para los administradores descubrir que un sistema de archivos está utilizando una gran cantidad de espacio que no puede explicarse por la simple suma de bloques de disco (con algo parecido du
). La razón más frecuente es que se ha eliminado un archivo abierto, por lo que ya no está representado en su directorio. La razón es que los bloques de disco permanecen en uso hasta que finaliza el último proceso que utiliza el archivo.
Abrir un archivo e inmediatamente unlink
usarlo es en realidad una práctica común para crear archivos seguros y temporales. Herramientas como lsof
pueden exponer estos archivos invisibles si busca archivos con un recuento de enlaces (NLINK) de cero.
En Unix y Linux (de los cuales MacOS es un Unix de marca), rm
sigue la filosofía de Unix de "hacerlo" sin fanfarria si es posible. Es decir, si tiene los permisos para eliminar un archivo (es decir, su directorio permite la escritura), entonces rm
hace exactamente lo que le pide. Es posible rm='rm -i'
que desee crear un alias de shell que le solicite confirmación antes de realizar la operación. Usando el -f
interruptor con rm
anulaciones que si es necesario. Un alias rm
es más útil cuando glob
elimina eliminaciones rm *.log
. Es decir, tiene la opción de omitir un archivo en la lista.
Dependiendo de su contenido, pero puede usar diferentes softwares de terceros para hacer eso, por ejemplo:
y muchos más.
Puede encontrar más aplicaciones escribiendo 'recuperación de datos' en App Store.
La forma más avanzada es iniciar su OSX en modo de recuperación (o desmontar su partición si puede) y buscarla manualmente (si recuerda algún texto específico de su script).
Algun ejemplo:
diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"