Activado rm: desvincula un archivo de él inode. La pregunta: "A dónde van los archivos cuando rmse emite el comando" -> unix.stackexchange.com/questions/10883/… también podría ser una buena lectura para usted.
erch
Respuestas:
62
No hay un "deshacer" general para cada operación en la terminal. Si desea recuperar un archivo después de usarlo rm, deberá buscar un software de recuperación.
Una opción para evitar futuros errores es crear aliascomandos alternativos para eliminar archivos. Añádelos a tu ~/.bashrcy adquiere el hábito de usarlos en lugar de rm.
alias rmi = 'rm -i'
Si lo usa rmi, se le solicitará la confirmación de futuras eliminaciones. Intente evitar desarrollar el hábito de presionar yinmediatamente después de emitir un rmicomando, ya que eso anulará el propósito.
También puede mover archivos borrados por el trshcomando en la terminal a su papelera de reciclaje (en KDE y Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Si lo usa trsh, tendrá una capacidad limitada de "recuperación". Cuidado con eso
basura () {mv $ @ ~ / .Trash; } # función bash, no un alias. Cambiar la conducta esperada de rm es una mala idea, en mi humilde opinión.
Richard Hoskins el
20
El riesgo con aliasing rma rm -ies que uno se acostumbra a la red de seguridad que te da. Luego vas a otra máquina, que no tiene ese alias ...
Dentrasi
3
Por las razones que mencionan Richard y Dentrasi, prefiero crear una función personalizada o alias rmi-> rm -i. Es realmente un error simplemente interponerse en un programa existente aliasándolo.
Telémaco el
6
No hay papelera de reciclaje para la línea de comando.
Puede probar algunas de las diversas utilidades de recuperación, pero no hay garantía de que funcionen.
Sí, hay una papelera para la línea de comando. Ver trash-cli en otra respuesta.
Sparhawk
Trash-cli es muy bueno :) y usa Trashlib, mejor que simplemente mover archivos.
m3nda
5
Puede usar trash-cli si usa KDE cuando ejecuta una interfaz gráfica de usuario. Esta es la utilidad de línea de comandos para eliminar / restaurar usando las instalaciones de basura de KDE.
trash-cli proporciona también funciona con la basura de GNOME y está diseñado para proporcionar compatibilidad de opciones rm (para el aliasing).
Andrea Francia
No te olvides de alias rm=trashque tus problemas de línea de comandos típicos vienen con botones de deshacer.
Ryan C. Thompson
Creo que alias rm=trashes potencialmente peligroso, si hay alguna posibilidad de que uses el sistema de otra persona algún día y lo olvides (o ssh). Es mucho más seguro acostumbrarse a escribir en trashlugar de hacerlo rm.
Sparhawk
4
Puede crear rmun alias para el trashcomando (deberá instalarlo trashprimero). Agregue esto a su ~/.bashrc:
alias rm='trash'
Esto es preferible alias rm='mv --target-directory=$HOME/.Trash'ya que ~ / .Trash NO es la carpeta de basura para gnome. En mi humilde opinión, es mejor trashaveriguar dónde está la carpeta de basura real.
Por cierto, habría publicado esto en un comentario, pero no tengo suficiente representante.
+1 para "ya que ~ / .Trash NO es la carpeta de basura para gnome". Sin embargo, rm tampoco debe tener un alias de basura. Deberías usar basura en lugar de rm si eso es lo que quieres.
nagul
Es cierto, pero para algunas personas los viejos hábitos mueren con dificultad.
Alvin Row
'rmtrash' es otra opción.
Itachi
3
Aún no se han nombrado dos soluciones técnicas más:
libtrash : una biblioteca dinámica que se puede precargar en su shell que intercepta la eliminación / eliminación de syscalls y mueve los archivos a una carpeta de basura en su lugar (al igual que un alias pero funciona para cualquier aplicación cuando está precargada).
Un sistema de archivos de versiones. Si elimina (o edita, copia o ...) un archivo, puede volver a un estado anterior. Esto podría hacerse con un sistema de archivos FUSE y uno de sus sistemas de archivos de versiones .
Hay una pregunta más grande aquí que vale la pena abordar. Los comandos de Shell no son habladores (no verifican dos veces lo que quieres) y esperan que sepas lo que estás haciendo. Esto es fundamental para la forma en que están diseñados . Es una característica, no un error.
Algunas personas se sienten machos cuando usan tales comandos, lo que creo que es bastante tonto, pero es importante comprender los peligros. Puedes hacer mucho daño en una terminal, incluso si no eres root. Creo que probablemente realmente te importó rm, pero como dijiste "¿Podemos deshacer las operaciones realizadas en la terminal", pensé que valía la pena decirlo. La respuesta general es no, no puedes.
Opción 1: consulte Recuperar archivos de Linux de un sistema de archivos ext2 . Esta página apunta a un programa, escrito por Sebastian Hetze de la compañía LunetIX, que (como sugiere el título) recupera archivos recientemente eliminados de un sistema de archivos ext2. Ejemplo de uso:
# undelete -d /dev/hdc3 -a 10
Advertencias:
El sitio web original se ha ido. El enlace, arriba, es al Archivo de Internet.
Los sitios están en una mezcla de inglés y alemán.
Como se indicó anteriormente, la herramienta está diseñada específicamente para el sistema de archivos ext2. Es poco probable que funcione en cualquier otro tipo de sistema de archivos; especialmente no los distintos ext N .
Opción 2: Tengo rsnapshot (rsync) ejecutándose en mi máquina que hace instantáneas cada hora de mis carpetas seleccionadas. Incrementa esto cada hora, 2 horas o lo que sea que le digas a CRON que haga. Después de un día completo, recicla estas instantáneas en una instantánea diaria y después de 7 días de forma semanal, etc. ¡Esto me permite retroceder en el tiempo durante aproximadamente un mes por cada hora! Es bastante bueno con espacio en disco ya que crea enlaces simbólicos a archivos que nunca cambiaron ...
Existen utilidades de recuperación para ext2, pero la mayoría de los otros sistemas de archivos de Linux están atrapados en la Edad de Piedra y no tienen características de usabilidad avanzadas. El triste estado de las cosas considerando unidades gigantescas con suficiente espacio para nunca volver a eliminar un archivo son comunes.
Entonces estás atrapado con tres opciones:
Realice copias de seguridad regularmente, por ejemplo con un comando como:
Use una herramienta de control de versiones como gitpara todo su trabajo. Si bien esto no protegerá contra un loco rm -rque mata el repositorio, protegerá contra problemas regulares, ya que usará git rmno en bruto rm.
Tenga mucho cuidado y no confíe demasiado rm -i, trash-cliy amigos, ya que la mayoría de los datos que perderá en el shell no los perderá accidentalmente rm, sino por tuberías mal dirigidas, archivos de salida mal escritos, mal dirigidos mvy otras cosas, es decir, cosas que sobrescribirán sus datos, no solo eliminarlos.
Es bastante divertido llamar a ext2 moderno. Los sistemas de archivos más nuevos usan formatos en disco más complicados que ext2 / 3, y tuvieron que renunciar a ubicaciones fáciles de encontrar donde podría encontrar archivos para eliminar. Están diseñados para personas que hacen copias de seguridad de cosas que les importan. Por cierto, siempre uso mv y cp -i, ya que normalmente no quiero golpear nada. Normalmente escribo \ rm, porque también tengo alias rm a rm -i, pero no quiero responder a su pregunta.
son equivalentes el script maneja más casos y no altera su sistema rmen absoluto, y eso se debe a que se coloca en la carpeta bin del usuario local, por lo que sombrea el rm del sistema y, sin embargo, no lo afecta ni inhabilita su uso
Este es un enfoque de alias refinado pero sin perder ninguna característica
Para mí (opensuse leap 42.2, NTFS pendrive) PhotoRec , también por los testdiskcreadores, funcionó :) Sin embargo, no ha recuperado los nombres de archivo.
PhotoRec es un software de recuperación de datos de archivos diseñado para recuperar archivos perdidos, incluidos videos, documentos y archivos de discos duros, CD-ROM e imágenes perdidas (de ahí el nombre de Photo Recovery) de la memoria de la cámara digital. PhotoRec ignora el sistema de archivos y busca los datos subyacentes, por lo que seguirá funcionando incluso si el sistema de archivos de sus medios ha sido gravemente dañado o reformateado.
Lo instalé usando repositorios estándar en openSUSE
¡Bienvenido a Super User! Lea Cómo recomendar software para obtener la información mínima requerida y sugerencias sobre cómo recomendar software en Super User. Para que su respuesta sea útil incluso si los enlaces proporcionados rompen estos detalles, debe editarlos en su respuesta.
rm
: desvincula un archivo de élinode
. La pregunta: "A dónde van los archivos cuandorm
se emite el comando" -> unix.stackexchange.com/questions/10883/… también podría ser una buena lectura para usted.Respuestas:
No hay un "deshacer" general para cada operación en la terminal. Si desea recuperar un archivo después de usarlo
rm
, deberá buscar un software de recuperación.Una opción para evitar futuros errores es crear
alias
comandos alternativos para eliminar archivos. Añádelos a tu~/.bashrc
y adquiere el hábito de usarlos en lugar derm
.Si lo usa
rmi
, se le solicitará la confirmación de futuras eliminaciones. Intente evitar desarrollar el hábito de presionary
inmediatamente después de emitir unrmi
comando, ya que eso anulará el propósito.También puede mover archivos borrados por el
trsh
comando en la terminal a su papelera de reciclaje (en KDE y Gnome):Si lo usa
trsh
, tendrá una capacidad limitada de "recuperación". Cuidado con esoaún puede causar pérdida de datos irrecuperable.
fuente
rm
arm -i
es que uno se acostumbra a la red de seguridad que te da. Luego vas a otra máquina, que no tiene ese alias ...rmi
->rm -i
. Es realmente un error simplemente interponerse en un programa existente aliasándolo.No hay papelera de reciclaje para la línea de comando.
Puede probar algunas de las diversas utilidades de recuperación, pero no hay garantía de que funcionen.
fuente
Puede usar trash-cli si usa KDE cuando ejecuta una interfaz gráfica de usuario. Esta es la utilidad de línea de comandos para eliminar / restaurar usando las instalaciones de basura de KDE.
fuente
alias rm=trash
que tus problemas de línea de comandos típicos vienen con botones de deshacer.alias rm=trash
es potencialmente peligroso, si hay alguna posibilidad de que uses el sistema de otra persona algún día y lo olvides (o ssh). Es mucho más seguro acostumbrarse a escribir entrash
lugar de hacerlorm
.Puede crear
rm
un alias para eltrash
comando (deberá instalarlotrash
primero). Agregue esto a su~/.bashrc
:Esto es preferible
alias rm='mv --target-directory=$HOME/.Trash'
ya que ~ / .Trash NO es la carpeta de basura para gnome. En mi humilde opinión, es mejortrash
averiguar dónde está la carpeta de basura real.Por cierto, habría publicado esto en un comentario, pero no tengo suficiente representante.
fuente
Aún no se han nombrado dos soluciones técnicas más:
fuente
Hay una pregunta más grande aquí que vale la pena abordar. Los comandos de Shell no son habladores (no verifican dos veces lo que quieres) y esperan que sepas lo que estás haciendo. Esto es fundamental para la forma en que están diseñados . Es una característica, no un error.
Algunas personas se sienten machos cuando usan tales comandos, lo que creo que es bastante tonto, pero es importante comprender los peligros. Puedes hacer mucho daño en una terminal, incluso si no eres root. Creo que probablemente realmente te importó
rm
, pero como dijiste "¿Podemos deshacer las operaciones realizadas en la terminal", pensé que valía la pena decirlo. La respuesta general es no, no puedes.fuente
Opción 1: consulte Recuperar archivos de Linux de un sistema de archivos ext2 . Esta página apunta a un programa, escrito por Sebastian Hetze de la compañía LunetIX, que (como sugiere el título) recupera archivos recientemente eliminados de un sistema de archivos ext2. Ejemplo de uso:
Advertencias:
Opción 2: Tengo rsnapshot (rsync) ejecutándose en mi máquina que hace instantáneas cada hora de mis carpetas seleccionadas. Incrementa esto cada hora, 2 horas o lo que sea que le digas a CRON que haga. Después de un día completo, recicla estas instantáneas en una instantánea diaria y después de 7 días de forma semanal, etc. ¡Esto me permite retroceder en el tiempo durante aproximadamente un mes por cada hora! Es bastante bueno con espacio en disco ya que crea enlaces simbólicos a archivos que nunca cambiaron ...
fuente
Recuperar usando grep on
/dev/partition
( Linux o Unix Recuperar archivos borrados - recuperar archivos ),Solo un intento.
fuente
Existen utilidades de recuperación para ext2, pero la mayoría de los otros sistemas de archivos de Linux están atrapados en la Edad de Piedra y no tienen características de usabilidad avanzadas. El triste estado de las cosas considerando unidades gigantescas con suficiente espacio para nunca volver a eliminar un archivo son comunes.
Entonces estás atrapado con tres opciones:
Realice copias de seguridad regularmente, por ejemplo con un comando como:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Use una herramienta de control de versiones como
git
para todo su trabajo. Si bien esto no protegerá contra un locorm -r
que mata el repositorio, protegerá contra problemas regulares, ya que usarágit rm
no en brutorm
.Tenga mucho cuidado y no confíe demasiado
rm -i
,trash-cli
y amigos, ya que la mayoría de los datos que perderá en el shell no los perderá accidentalmenterm
, sino por tuberías mal dirigidas, archivos de salida mal escritos, mal dirigidosmv
y otras cosas, es decir, cosas que sobrescribirán sus datos, no solo eliminarlos.Haga los tres para obtener la máxima seguridad.
fuente
mira esto ... podría ser útil http://artmees.github.io/rm/
supongamos que lo hiciste
desde la terminal recuperar este archivo es un proceso tedioso y no siempre exitoso
en cambio, si usaste el script mencionado anteriormente. no tienes que preocuparte por esto porque
son equivalentes el script maneja más casos y no altera su sistema
rm
en absoluto, y eso se debe a que se coloca en la carpeta bin del usuario local, por lo que sombrea el rm del sistema y, sin embargo, no lo afecta ni inhabilita su usoEste es un enfoque de alias refinado pero sin perder ninguna característica
fuente
TestDisk puede recuperar archivos de los sistemas de archivos FAT, exFAT, NTFS y ext2 .
fuente
Para mí (opensuse leap 42.2, NTFS pendrive) PhotoRec , también por los
testdisk
creadores, funcionó :) Sin embargo, no ha recuperado los nombres de archivo.Lo instalé usando repositorios estándar en openSUSE
instrucción
fuente