Recientemente lo hice accidentalmente rm
en un conjunto de archivos y me hizo pensar dónde terminan exactamente estos archivos.
Es decir, cuando se trabaja con una GUI, los archivos eliminados van a la Papelera. ¿Cuál es el equivalente rm
y hay alguna forma de deshacer un rm
comando?
command-line
rm
trash
boehj
fuente
fuente
Respuestas:
En ninguna parte, ido, desaparecido. Bueno, más específicamente, el archivo se desvincula. Los datos todavía están allí en el disco, pero se elimina el enlace. Solía ser posible recuperar los datos, pero hoy en día los metadatos se borran y nada es recuperable.
No hay papelera para
rm
, ni debería haberla. Si necesita una papelera, debe usar una interfaz de nivel superior. Hay una utilidad de línea de comandos entrash-cli
Ubuntu, pero la mayoría de las veces los administradores de archivos GUI como Nautilus o Dolphin se utilizan para proporcionar una papelera estándar. La papelera es estándar en sí misma. Los archivos descargados en Dolphin serán visibles en la Papelera de Nautilus.Los archivos generalmente se mueven a algún lugar, como
~/.local/share/Trash/files/
cuando se arrojan a la basura. Elrm
comando en UNIX / Linux es comparable aldel
de DOS / Windows que también elimina y no mueve archivos a la Papelera de reciclaje. Otra cosa a tener en cuenta es que mover un archivo a través de sistemas de archivos como su disco USB desde su disco duro es realmente 1) una copia de los datos del archivo seguido de 2) desvincular el archivo original. No querrás que tu Papelera se llene con estas copias adicionales.fuente
libtrash
cambiar el comportamiento de rm. Se utilizan muchos scriptsrm
para limpiar archivos y no desea que aparezcan en la Papelera. Recomiendo usar un comando dedicado comotrash
el deltrash-cli
paquete. @pedro Debo agregar que una vez creé un archivo * en mi directorio de inicio. Había citado accidentalmente * cuando no debía crearlo, así que decidí eliminarlo con rm * de forma nativa. Cuando me di cuenta de lo que hice, eliminé rápidamente el comando, pero ya había eliminado varios archivos en mi directorio de inicio.cp
, ymv
, acp -i
, ymv -i
cuando se ejecuta como root. Esto cambia el comportamiento predeterminado, por lo que esos comandos siempre preguntarán antes de sobrescribir los archivos existentes. Algunos administradores de sistemas recomendaron eliminar específicamente esos alias para que no termines esperando ese comportamiento que puede terminar siendo letal cuando estás en otro sistema que sigue el comportamiento predeterminado.Para ext3 / ext4, puede intentar recuperar archivos usando herramientas como extundelete o ext3grep , o incluso jugar manualmente con las estructuras de bajo nivel (no para los débiles de corazón); para muchos sistemas de archivos, puede intentar buscar los bloques aún no sobrescritos por ciertos patrones (por ejemplo, magicrescue puede buscar encabezados JPEG, entre otras cosas). Tenga en cuenta que estos están utilizando la heurística para recuperar los archivos de los metadatos que quedan, por lo que no se garantiza la recuperación total: es más una apuesta de última oportunidad (ya que requieren que algunos rastros de los archivos permanezcan en el diario y que los bloques aún no se sobrescribieron).
Por lo tanto, para todos los efectos, los archivos eliminados
rm
han desaparecido: puede probar la nigromancia que ofrecen estas herramientas, pero no dependa de ello: estas son las herramientas para probar cuando todo lo demás falla. Mejor desenterrar sus últimas copias de seguridad (ha estado haciendo copias de seguridad, ¿verdad? Oh, bueno, viva y aprenda ...).fuente
En cuanto a deshacer los efectos de
rm
:Dado que la mayoría de los sistemas de archivos solo eliminan la referencia a los datos e indican que los bloques están libres, puede intentar localizar su lectura de datos directamente desde el dispositivo. Con un poco de suerte, los bloques que contienen sus archivos no han sido reclamados por otra cosa.
Esto supone que tiene algo bastante único para buscar, que tiene
root
en el sistema y supongo que juntar todo lo que abarca más de un bloque del sistema de archivos (probablemente 4k) podría resultar bastante laborioso si el sistema de archivos no se maneja poner los archivos en bloques contiguos.He recuperado con éxito el contenido de un par de archivos de texto sin formato ejecutando cadenas en el dispositivo en el que estaba el sistema de archivos, y usando
grep
buscando algo de esos archivos con un contexto grande (-C
). (Y poco después de ese incidente, la compañía decidió gastar algunos recursos en la implementación de copias de seguridad)fuente
magicrescue
que tratan de encontrar imágenes o sonidos por sus patrones distintivos.Cada vez que elimina un archivo usando el
rm
comando, los datos del archivo nunca se eliminan. En otras palabras, los bloques en el sistema de archivos que contienen datos todavía están allí.Lo que sucede es que cuando ejecuta el
rm
comando, el sistema marca el inodo que pertenece a ese archivo como no utilizado y los bloques de datos de ese archivo también como no utilizados (pero no eliminados). Sin embargo,ext3
pone a cero la mayoría de los campos en el inodo, cuando se elimina un archivo.Este marcado normal de no utilizado se realiza para la velocidad ... De lo contrario, para eliminarlo llevará más tiempo. Es por eso que puede haber notado que eliminar incluso archivos grandes es más rápido (puede recuperar los datos si esos bloques de datos no se sobrescriben).
Más información: Estructura de inodo , cómo funciona la eliminación de archivos
fuente
chattr +s
atributo ("triturar"). Le dice al sistema de archivos que sobrescriba específicamente este archivo con ceros en la eliminación. Solo algunos sistemas de archivos admitirán ese atributo.En los sistemas de archivos de estilo Unix (incluso en Linux), los archivos no están realmente "en" ningún lugar en particular. En cambio, el sistema usa enlaces duros para señalar en partes lo que equivale a una gran cantidad de datos. Por lo tanto, cuando crea un archivo, también crea su primer enlace rígido: el que realmente reside en el lugar donde "guardó" el archivo. Si crea más enlaces duros, hasta donde el sistema sabe, el archivo existe en varios lugares a la vez.
Cuando "borra" un archivo, normalmente solo está borrando el enlace duro que existía en el lugar que especificó. Por eso se llama a la llamada del sistema para eliminar archivos
unlink()
. El sistema no eliminará el archivo hasta que no queden enlaces duros. Pero una vez que se destruye el último enlace rígido, también lo hacen los datos.Entonces, ¿a dónde van los archivos que eliminas? Si todavía hay enlaces duros, estos archivos están donde estén los enlaces duros que no eliminó. Si no quedan enlaces duros, los archivos desaparecen.
fuente
Busque también en ~ / .snapshot si el archivo se eliminó recientemente.
fuente