2011-05-05 18:30:54 +0000 2011-05-05 18:30:54 +0000
116
116

¿Deshacer un comando "rm -rf ~"?

Tenía una carpeta que no quería que se llamara ‘~’, así que desde la línea de comandos escribí

rm -rf ~

y accidentalmente borré mi carpeta home (ya que ~ se resolvía en /home/nombredeusuario). ¿Hay alguna forma de volver atrás o básicamente tengo que volver a crear la cuenta desde cero?

Respuestas (12)

148
148
148
2011-05-05 18:34:16 +0000

En general, no hay una manera fácil de volver.

Podría restaurar desde su copia de seguridad diaria.

67
67
67
2011-05-06 02:20:40 +0000

Otros (como @RiMMER , @Adam , y @James T ) han mencionado que, para la mayoría de los sistemas de archivos, es posible recuperar la mayor parte o la totalidad de los datos (tal vez sin los nombres de los archivos), porque los datos no se eliminan realmente, sólo se quitan de la tabla de archivos. Esto no sólo ocurre en Linux, sino también en Windows y Mac.

Sin embargo, nadie ha mencionado lo más importante - APAGUE SU ORDENADOR. AHORA..

Muchos programas -incluyendo el navegador de internet que estás usando ahora mismo- guardarán datos en la memoria caché del disco duro, y prácticamente cualquier cosa que hagas puede hacer que tu ordenador cambie el tamaño/escriba en el archivo de intercambio. Ambas cosas escribirán en los sectores libres del disco duro, sobrescribiendo potencialmente tus preciosos datos.

Por lo tanto, apague su ordenador, saque el disco duro y póngalo en otro ordenador. Monte el disco duro como de sólo lectura y recupere los archivos en otro disco duro. Cuando hayas recuperado todo lo que te interese -y sólo entonces- vuelve a escribir los archivos en el disco original.

13
13
13
2011-05-06 02:41:43 +0000

Creo que todos los usuarios de linux en algún momento deben aprender esta dolorosa lección de primera mano antes de aprender realmente la importancia de las copias de seguridad, así como de prestar atención a los detalles y ser cuidadosos.

Por ejemplo, si estás borrando archivos de aspecto extraño, primero podrías ejecutar comandos en ese archivo extraño que no tienen efectos secundarios y que no hacen cambios en tus datos. Por ejemplo, si hubieras ejecutado

cd ~

antes de intentar borrar la carpeta, habrías visto que en su lugar cambiaría el directorio a tu carpeta de inicio, no a la carpeta ~. Una vez que pases por los suficientes pasos de solución de problemas para aprender el verdadero comando que necesitarías para correctamente cd en la carpeta ~, entonces podrías presionar tu tecla de flecha hacia arriba para sacar el último comando del historial y luego cambiar cd a rm y entonces y sólo entonces tratar de borrar la carpeta.

Sugiero tomar medidas como esta antes de realizar cualquier acción que sea permanente. No es permanente ni infalible, pero tienes muchas más posibilidades de evitar esos momentos de “oops” si tienes este grado de cuidado al realizar acciones que tienen efectos secundarios.

7
7
7
2011-05-05 19:00:15 +0000

Si está utilizando el sistema de archivos ext3, entonces ext3grep es su nuevo mejor amigo. Un buen tutorial (entre muchos otros) sobre el uso de ext3grep se puede encontrar aquí .

6
6
6
2011-05-05 18:49:12 +0000

Puede intentar usar testdisk para deshacer el borrado de archivos individuales . Esto aparentemente sólo funciona en ext2 y NTFS (pero aún así vale la pena intentarlo).

Si tienes ext3 o ext4, puedes recuperar archivos conocidos s utilizando photorec , que probablemente acabará recuperando más de lo que quieres. Photorec recupera los archivos sin la información del nombre del archivo, por lo que puede ser tedioso revisar los archivos.

4
4
4
2011-05-06 14:31:40 +0000

Si tienes un disco externo lo suficientemente grande tienes otra opción posiblemente más segura. Necesitarás espacio suficiente para almacenar toda la partición de inicio incluyendo el espacio libre.

Arranca desde un CD y no montes el disco de casa. Monta el disco externo. dd la partición del disco de casa en un archivo en el disco externo. monta el archivo como un dispositivo de bucle de retorno haz tu trabajo de deshacer el borrado en esta imagen, con la seguridad de que no puedes hacer ningún daño a tu sistema de archivos original. Dependiendo del sistema de archivos puede haber muchas cosas que probar, algunas de ellas potencialmente destructivas.

Esto me salvó una vez con una versión beta de Reiser4 cuando no sabía qué iba a hacer aunque lo montara de sólo lectura. Leí en algún lugar en ese momento que las escrituras en el diario aún eran posibles.

También es una buena técnica para salvar los datos de una unidad moribunda.

2
2
2
2011-05-05 18:46:33 +0000

Existen técnicas para recuperar archivos inspeccionando los inodos que no han sido reciclados. Cuantos más datos se escriban en el sistema de archivos después del borrado, menos probabilidades habrá de recuperar los datos. La mejor estrategia para recuperarse de un borrado accidental de datos es restaurar desde una copia de seguridad.

2
2
2
2011-05-07 18:27:57 +0000

Lamento lo de tus datos. Todos los demás han respondido con la forma de lidiar con su problema de datos, pero aquí hay algo de información sobre cómo puede lidiar con la próxima vez que vea una carpeta caled ~.

  1. Encuentra a quien la creó y asegúrate de que no lo vuelva a hacer.
  2. No utilices -rf o cualquier argumento poderoso y loco para que rm haga el borrado. En su lugar, tómalo con calma y asegúrate de que puedes ver lo que está sucediendo. Es posible introducir la tilde sin que se expanda a tu directorio de origen escapándola en el shell. En teoría, podrías _x6&, pero puedes ir un paso más allá.
  3. Primero, rm -rI \~ para entrar en esa carpeta, tal vez incluso usar cd \~ para comprobar que has llegado allí. Diez eliminar su contenido mientras que usted está allí. De nuevo ten cuidado, pero limpia la carpeta con pwd y si lo necesitas, usa también rf -rI *.
  4. Ahora vuelve a subir con .* y elimina el directorio con cd ...
2
2
2
2011-05-06 05:30:57 +0000
alias rm="rm -i"

Asumiendo que estás usando el shell Bash (pon esto en tu archivo .bashrc para que persista en los nuevos shells que abras).

Esto debería dar como resultado que rm te pida que confirmes lo que quieres borrar, lo cual es bueno especialmente cuando estás haciendo -rf, pero también expandirá ‘~’ a la ruta completa de tu directorio personal en el prompt, lo cual debería darte una pista de que no estás borrando un archivo ‘~’ sino realmente tu directorio personal.

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

Esto no es técnicamente una respuesta a su pregunta, pero podría ayudarle a evitar este problema en el futuro.

EDIT: Algunas personas pueden desaconsejarle el uso de esta técnica ya que le hace menos cuidadoso con el comando “rm”. En mi experiencia esto está lejos de la verdad. En realidad, el efecto del alias es disuadirte de usar “rm -rf” - ya que sabes que resultará en muchos avisos que no quieres responder - y para conseguir un “rm -rf” sin avisos necesitas referirte deliberadamente al comando rm como /bin/rm (o lo que sea). Esto lleva a un uso mucho más consciente y deliberado del comando “rm” en general - ya que siempre tienes que preceder el uso de rm con una elección mental de “rm o /bin/rm” - tanto en tu servidor como en cualquier otro en el que estés conectado. Y un mundo en el que todo el mundo pensara antes de usar rm sería realmente más seguro.

1
1
1
2011-05-06 07:04:37 +0000

Simplemente hago un cd .snapshot y restauro los archivos. Pero, hago esto en el trabajo y no tengo ni idea de dónde viene el directorio .snapshot. Pensé que tal vez era una característica de Linux.

1
1
1
2018-06-10 04:22:55 +0000

Herramientas de recuperación - Línea de comandos :

*Herramientas de recuperación - Gui : *

*Infos : *

En mi experiencia personal he recuperado mis datos usando “UFS Explorer” y photorec

(1) = No es de código abierto, no es gratis

(2) = No es de código abierto, es gratis

(3) = Es de código abierto y es gratis

(4) = Tiene soporte para ntfs

(5) = Tiene estructura de directorios

-3
-3
-3
2011-05-06 00:07:52 +0000

rm es para siempre.

Aunque esto no te ayude ahora, podrías en el futuro no usar rm o para forzarte de verdad, añadir un script encontrado antes en tu ruta llamado rm que mueva los archivos a una carpeta de basura que limpies en otro momento (lo que te permitirá cometer errores y no estar SOL).