¿Se pueden restaurar los archivos / directorios eliminados con rm?


69

¿Es posible restaurar archivos / directorios que se eliminan del terminal usando rmy rm -r? Si un archivo se elimina de la interfaz gráfica, podría restaurarse de la papelera, pero ¿cómo se restaura un archivo si se elimina con la utilidad rm?


para herramientas para recuperar archivos borrados (en cualquier forma), puede echar un vistazo a esta pregunta askubuntu.com/q/3883
Decio Lira

No use "rm" si desea restaurar los archivos en el futuro. Puede usar la utilidad "rm-trash": github.com/nateshmbhat/rm-trash
Natesh bhat

Respuestas:


63

Para este fin, uso el trash-clipaquete y el siguiente alias en mi~/.bashrc

alias rm=trash

Y el trash-clipaquete puede ser instalado por el comando followoing: sudo apt-get install trash-cli.

Los archivos que elimines se moverán a la papelera y podrás verlos en la papelera nautilus.

Siempre puede acceder a lo real rmutilizando uno de los siguientes métodos:

command rm something
'rm' something
\rm something

También hay comandos para acceder a la papelera de la terminal, trash-list, restore-trash(o trash-restore), trash-emptyinstalable del paquete de basura-cli (luego ver sus páginas man).

Última nota, no es aconsejable utilizar dicho alias para superusuario, ya que puede interferir con las operaciones del sistema.


19
Es una solución, pero en realidad no responde la pregunta.
evgeny

Creo que el usuario también sabría si hay algún método para lograr el mismo comportamiento desde la línea de comandos. Si no, estoy listo para eliminar mi respuesta.
enzotib

3
Es bueno. He adquirido algunos conocimientos.
user3215

27

Al eliminarlo del terminal, se elimina permanentemente: la recuperación es muy difícil y, a veces, imposible.

Si su tipo de partición es ext3( verifíquelo usando System->Administration->Disk Utility), eche un vistazo a ext3undel .

Si no es así (si instaló Ubuntu con la configuración predeterminada ), pruebe el extundeleteprograma.

Sin embargo, no hay garantía de que recupere nada.


Sería realmente útil para las ediciones de escritorio.
user3215

Dudo que esto funcione de manera efectiva para unidades SSD, pero me alegra saber lo contrario
mate

13

Usted está buscando: extundelete - utilidad para recuperar archivos borrados de la partición ext3 / ext4

Para encontrar dicho paquete, puede probar: apt-cache search undelete

Para usar la utilidad instálela con: sudo apt-get install extundelete

Después de la instalación, invoque man extundeletey estudie cuidadosamente.


6

Como alternativa, si sabe específicamente qué tipo de archivo es ...

sudo apt-get install foremost

Ahora abre /etc/foremost.confy verás una larga lista de líneas comentadas. Si su tipo de archivo existe, elimine el comentario de la línea (también puede eliminar las líneas irrelevantes).

Si su tipo de archivo no existe, agregue su propia línea. Digamos que quiero recuperar un archivo .css y sé que es alrededor de 40K. Podría agregar esto:

css     n       40000   Theme\sName:     Plugin\sFixes

La segunda columna se refiere a mayúsculas y minúsculas, la tercera columna se refiere al límite superior de tamaño, la cuarta columna es cómo se inicia el archivo (recuerde usar caracteres escapados) y la última columna es cómo termina generalmente el archivo.

Use el siguiente comando (edite el disco en consecuencia. Podría verificar con el dfcomando)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Lo que sucederá después es que ante todo creará una carpeta llamada salida y volcará todos los datos recuperados (en este caso) en la carpeta. Desde allí, puede usar diffo meldcomparar los 'archivos' recuperados y ver cuál es el más actualizado.


muchas gracias. Funcionó perfectamente. Accidentalmente eliminé mi phparchivo fuente usando rm -fr php/2 phparchivos. Menos de 2 minutos se recuperaron perfectamente. En el .confarchivo agregué:php n 40000 <?php ?> ASCII
Shakiba Moshiri el

5

Hablando en los términos más abstractos, cada vez que elimina un archivo en la interfaz gráfica, el archivo se "mueve" a un "buffer" especial, un directorio llamado trash. Puede ubicarlo en su homedirectorio ~/.local/share/Trash/,. Los archivos "eliminados" de este directorio se eliminarán realmente. Esta eliminación real es lo que sucede cuando se usa rmen un archivo.

Es extremadamente difícil recuperar archivos borrados. Los archivos en el sistema de archivos se representan como nodos en un árbol B o similar. Cuando se elimina un archivo usando rm, el árbol se actualiza, se reduce el número de enlaces duros y se elimina la entrada correspondiente en la lista del directorio. Si en absoluto, su archivo tenía un enlace duro, su archivo es absolutamente seguro. Puedes hacer un file / -samefile filename. Puede buscar el archivo si recuerda también su número de inodo (este no es el caso).

Otro caso es cuando ninguna de las posibilidades anteriores es verdadera. Cada vez que rmun archivo, la entrada del archivo en el directorio se elimina, lo que reduce el número de enlaces duros en uno. Y si el número de enlaces duros cae a cero, entonces el puntero al archivo en el inodo se cae o se marca para ser eliminado. De cualquier manera, su archivo "todavía" reside en el disco duro. El archivo se borra realmente del disco duro solo en el posterior montaje. La recuperación de archivos en ese momento es extremadamente difícil, implica pasar por el árbol del sistema de archivos y los inodos que representan ubicaciones reales de bloques de disco. Hay una herramienta popular de la que he oído hablar, pero nunca la usé, llamada extundelete. Aunque no hay garantía, vale la pena intentarlo.

Una vez que recuperes tus archivos con éxito o no, date prisa para hacer copias de seguridad regulares. Es extremadamente simple en Ubuntu.


2

Lo sentimos, pero los archivos eliminados de una línea de comandos con "rm" y "rm -f" omiten la "Papelera" que tiene en el escritorio de Gnome.

También es posible que desee preguntar si hay alguna herramienta de "recuperación" extfs como la que hay para FAT y NTFS. (No sé ninguno, pero me sorprendería si no hubiera ninguno).


¡Oh estabien!. Pensé que podría recuperarse de algún lugar.
user3215

1

use la utilidad " rm-trash " que maneja los pone a la basura para su posterior recuperación y admite todas las opciones del comando "rm".

sudo add-apt-repository ppa:nateshmbhat/rm-trash
sudo apt-get update
sudo apt-get install rm-trash

"rm-trash" es

  • destinado a ser utilizado en lugar de rm
  • maneja todas las opciones que rm puede tomar
  • maneja las colisiones de nombre de archivo con los archivos que ya están en la papelera
  • maneja algunos problemas de permisos automáticamente
  • si se llama a rm desde cualquier otro script o indirectamente, el comando 'rm' del sistema se usa automáticamente
  • muestra los mensajes de error apropiados como los que surgen en rm
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.