En Linux, si un proceso en ejecución tiene un identificador en un archivo eliminado, y uno conoce el número del descriptor del archivo para ese identificador, uno puede crear un vínculo físico desde el identificador en procfs (es decir, ln "/proc/$pid/fd/$fdnum" ./undeleted
). >
¿Existe alguna funcionalidad similar en MacOS X? Es decir, si un programa en ejecución aún tiene un controlador abierto en un archivo no vinculado, ¿hay una manera de crear una nueva entrada de directorio que apunte a ese mismo inodo, para así recuperar el archivo?
Hay varias preguntas relacionadas aquí - ¿Cómo puedo crear un archivo eliminado que aún está abierto por su inode? es el más cercano, pero con algunas distinciones:
- Idealmente, me gustaría volver a vincular el inodo que aún existe directamente, en lugar de cargar el contenido. (Esto es algo así como un archivo de 80 GB; crear una segunda copia de su contenido requerirá un poco de espacio y tiempo temporal).
- Al no estar familiarizado con la semántica de concurrencia de la herramienta
icat
sugerida en la respuesta, no estoy claro si es seguro ejecutar esto con la partición montada de lectura-escritura, y por lo tanto si un destino en el el mismo sistema de archivos (que tiene espacio para almacenar un archivo de 80 GB) es factible.