Ativado rm: Desvincula um arquivo dele inode. A pergunta: "Para onde vão os arquivos quando o rmcomando é emitido" -> unix.stackexchange.com/questions/10883/… também pode ser uma boa leitura para você.
erch
Respostas:
62
Não existe um "desfazer" geral para todas as operações no terminal. Se você deseja recuperar um arquivo após o uso rm, precisará procurar no software de recuperação.
Uma opção para evitar erros futuros é fazer aliases para comandos alternativos para remover arquivos. Adicione-os ao seu ~/.bashrce adquira o hábito de usá-los em vez de rm.
alias rmi = 'rm -i'
Se você usar rmi, você será solicitado a confirmar futuras exclusões. Tente evitar desenvolver o hábito de pressionar yimediatamente após emitir um rmicomando, pois isso anulará o objetivo.
Você também pode mover os arquivos excluídos pelo trshcomando no terminal para a lixeira (no KDE e no Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Se você usar trsh, terá um recurso limitado de "exclusão". Cuidado que
lixo () {mv $ @ ~ / .Trash; } # bash function, não um alias. Mudar o comportamento esperado da empresa é uma má idéia, IMHO.
Richard Hoskins
20
O risco com aliasing rmpara rm -ié que você se acostumar com a rede de segurança que ele lhe dá. Então você vai para outra máquina, que não tem esse apelido ...
Dentrasi
3
Pelas razões mencionadas por Richard e Dentrasi, prefiro criar uma função personalizada ou alias rmi-> rm -i. É realmente um erro simplesmente atrapalhar um programa existente fazendo um alias sobre ele.
Telêmaco
6
Não há lixeira para a linha de comando.
Você pode experimentar alguns dos vários utilitários não excluídos, mas não há garantia de que eles funcionariam.
Sim, há uma lixeira para a linha de comando. Veja lixo-cli em outra resposta.
Sparhawk
O Trash-cli é tão bom :) e usa o Trashlib, melhor do que simplesmente mover arquivos.
M3nda
5
Você pode usar o lixo-cli se usar o KDE ao executar um gui. Este é um utilitário de linha de comando para excluir / restaurar usando as instalações da lixeira do KDE.
O trash-cli fornece também funciona com o lixo do GNOME e foi projetado para fornecer compatibilidade de opções rm (para o aliasing).
Andrea Francia
Não esqueça disso, para alias rm=trashque suas falhas de linha de comando típicas venham com botões de desfazer.
Ryan C. Thompson
Eu acho que alias rm=trashé potencialmente perigoso, se houver alguma chance de você usar o sistema de outra pessoa um dia e esquecer (ou ssh). Muito mais seguro se acostumar a escrever em trashvez de rm.
Sparhawk
4
Você pode criar rmum alias para o trashcomando (você precisará instalar trashprimeiro.) Adicione isso ao seu ~/.bashrc:
alias rm='trash'
Isso é preferível, alias rm='mv --target-directory=$HOME/.Trash'já que ~ / .Trash NÃO é a pasta de lixo do gnome. É melhor IMHO deixar trashdescobrir onde está a pasta de lixo real.
btw eu teria postado isso em um comentário, mas eu não tenho representante suficiente.
+1 para "uma vez que ~ / .Trash NÃO é a pasta de lixo do gnome." No entanto, rm também não deve ser um alias para o lixo. Você deve usar o lixo em vez de rm, se é isso que deseja.
nagul
É verdade, mas para algumas pessoas os velhos hábitos são difíceis de morrer.
Alvin Row
'rmtrash' é outra opção.
Itachi
3
Ainda não foram nomeadas mais duas soluções técnicas:
libtrash : Uma biblioteca dinâmica que pode ser pré-carregada em seu shell, que intercepta os syscalls de exclusão / remoção e move os arquivos para uma pasta lixeira (como um alias, mas funciona para qualquer aplicativo quando pré-carregado).
Um sistema de arquivos de controle de versão. Se você excluir (ou editar, copiar ou ...) um arquivo, poderá reverter para um estado antigo. Isso pode ser feito com um sistema de arquivos FUSE e um de seus sistemas de arquivos com controle de versão .
Há uma pergunta maior aqui que vale a pena abordar. Os comandos do shell não são faladores (eles não checam o que você deseja) e esperam que você saiba o que está fazendo. Isso é fundamental para como eles são projetados . É um recurso, não um bug.
Algumas pessoas se sentem machões quando usam esses comandos, o que eu acho bastante tolo, mas é importante entender os perigos. Você pode causar muitos danos em um terminal, mesmo que não seja root. Acho que você provavelmente só se importou rm, mas como você disse: "Podemos desfazer as operações realizadas no terminal", pensei que valeria a pena dizer. A resposta geral é não, você não pode.
Opção 1: Consulte Recuperar arquivos Linux de um sistema de arquivos ext2 . Esta página aponta para um programa, escrito por Sebastian Hetze, da empresa LunetIX, que (como o título sugere) anula a exclusão de arquivos excluídos recentemente de um sistema de arquivos ext2. Exemplo de uso:
# undelete -d /dev/hdc3 -a 10
Advertências:
O site original desapareceu. O link acima é para o arquivo da Internet.
Os sites estão em uma mistura de inglês e alemão.
Como mencionado acima, a ferramenta foi projetada especificamente para o sistema de arquivos ext2. É improvável que funcione em qualquer outro tipo de sistema de arquivos; especialmente não outros do que os ext N .
Opção 2: Tenho o rsnapshot (rsync) em execução na minha máquina, que faz instantâneos de hora em hora das minhas pastas selecionadas. Ele faz isso de forma incremental a cada hora, 2 horas ou o que você solicitar ao CRON. Após um dia inteiro, ele recicla esses instantâneos em um instantâneo diário e após 7 dias por semana, etc. Isso me permite voltar no tempo por cerca de um mês a cada hora! É muito bom com espaço em disco, pois cria links simbólicos para arquivos que nunca foram alterados ...
Existem utilitários não-excluídos para o ext2, mas a maioria dos outros sistemas de arquivos Linux está paralisada na Idade da Pedra e não possui recursos avançados de usabilidade. Triste estado de coisas considerando unidades gigantescas com espaço suficiente para nunca excluir um arquivo novamente é comum.
Então você está preso a três opções:
Faça backup regularmente, por exemplo, com um comando como:
Use uma ferramenta de controle de versão, como gitem todo o seu trabalho. Embora isso não proteja contra um louco rm -rque mata o repositório, ele protege contra problemas regulares, pois você estará usando o git rmnão bruto rm.
Seja extremamente cuidadoso e não confie demais rm -i, trash-clie amigos, pois a maioria dos dados que você perderá no shell não perderá acidentalmente rm, mas por tubos mal direcionados, arquivos de saída digitados incorretamente, mal direcionados mve outras coisas, ou seja, coisas que sobrescreverão seus dados, não apenas exclua-os.
É muito hilário chamar ext2 de moderno. Os sistemas de arquivos mais recentes usam formatos de disco mais complicados que o ext2 / 3 e precisavam abrir locais fáceis de encontrar, onde você pode encontrar arquivos para excluir. Eles são projetados para pessoas que fazem backup de itens importantes. BTW, eu sempre uso mv e cp -i, uma vez que normalmente não quero estragar nada. Normalmente digito \ rm, porque também tenho alias para rm -i, mas não quero responder à sua pergunta.
são equivalentes. o script lida com mais casos e não altera o seu sistema rm, porque é colocado na pasta bin local do usuário, de modo que oculta a rm do sistema e ainda não o afeta ou desativa o uso
essa é uma abordagem refinada de alias, mas sem perder nenhum recurso
Para mim (opensuse salto 42.2, pendrive NTFS) PhotoRec - também pelos testdiskcriadores - funcionou :) No entanto, ele não recuperou os nomes dos arquivos.
O PhotoRec é um software de recuperação de dados de arquivos projetado para recuperar arquivos perdidos, incluindo vídeo, documentos e arquivos de discos rígidos, CD-ROMs e fotos perdidas (portanto, o nome do Photo Recovery) da memória da câmera digital. O PhotoRec ignora o sistema de arquivos e segue os dados subjacentes; portanto, ele continuará funcionando mesmo que o sistema de arquivos da mídia tenha sido severamente danificado ou reformatado.
Bem-vindo ao Super Usuário! Leia Como recomendar software para obter informações e sugestões mínimas necessárias sobre como recomendar software para Superusuário. Para manter sua resposta útil, mesmo se o (s) link (s) fornecido (s) quebrar esses detalhes, deve ser editado em sua resposta.
rm
: Desvincula um arquivo deleinode
. A pergunta: "Para onde vão os arquivos quando orm
comando é emitido" -> unix.stackexchange.com/questions/10883/… também pode ser uma boa leitura para você.Respostas:
Não existe um "desfazer" geral para todas as operações no terminal. Se você deseja recuperar um arquivo após o uso
rm
, precisará procurar no software de recuperação.Uma opção para evitar erros futuros é fazer
alias
es para comandos alternativos para remover arquivos. Adicione-os ao seu~/.bashrc
e adquira o hábito de usá-los em vez derm
.Se você usar
rmi
, você será solicitado a confirmar futuras exclusões. Tente evitar desenvolver o hábito de pressionary
imediatamente após emitir umrmi
comando, pois isso anulará o objetivo.Você também pode mover os arquivos excluídos pelo
trsh
comando no terminal para a lixeira (no KDE e no Gnome):Se você usar
trsh
, terá um recurso limitado de "exclusão". Cuidado queainda pode causar perda irrecuperável de dados.
fonte
rm
pararm -i
é que você se acostumar com a rede de segurança que ele lhe dá. Então você vai para outra máquina, que não tem esse apelido ...rmi
->rm -i
. É realmente um erro simplesmente atrapalhar um programa existente fazendo um alias sobre ele.Não há lixeira para a linha de comando.
Você pode experimentar alguns dos vários utilitários não excluídos, mas não há garantia de que eles funcionariam.
fonte
Você pode usar o lixo-cli se usar o KDE ao executar um gui. Este é um utilitário de linha de comando para excluir / restaurar usando as instalações da lixeira do KDE.
fonte
alias rm=trash
que suas falhas de linha de comando típicas venham com botões de desfazer.alias rm=trash
é potencialmente perigoso, se houver alguma chance de você usar o sistema de outra pessoa um dia e esquecer (ou ssh). Muito mais seguro se acostumar a escrever emtrash
vez derm
.Você pode criar
rm
um alias para otrash
comando (você precisará instalartrash
primeiro.) Adicione isso ao seu~/.bashrc
:Isso é preferível,
alias rm='mv --target-directory=$HOME/.Trash'
já que ~ / .Trash NÃO é a pasta de lixo do gnome. É melhor IMHO deixartrash
descobrir onde está a pasta de lixo real.btw eu teria postado isso em um comentário, mas eu não tenho representante suficiente.
fonte
Ainda não foram nomeadas mais duas soluções técnicas:
fonte
Há uma pergunta maior aqui que vale a pena abordar. Os comandos do shell não são faladores (eles não checam o que você deseja) e esperam que você saiba o que está fazendo. Isso é fundamental para como eles são projetados . É um recurso, não um bug.
Algumas pessoas se sentem machões quando usam esses comandos, o que eu acho bastante tolo, mas é importante entender os perigos. Você pode causar muitos danos em um terminal, mesmo que não seja root. Acho que você provavelmente só se importou
rm
, mas como você disse: "Podemos desfazer as operações realizadas no terminal", pensei que valeria a pena dizer. A resposta geral é não, você não pode.fonte
Opção 1: Consulte Recuperar arquivos Linux de um sistema de arquivos ext2 . Esta página aponta para um programa, escrito por Sebastian Hetze, da empresa LunetIX, que (como o título sugere) anula a exclusão de arquivos excluídos recentemente de um sistema de arquivos ext2. Exemplo de uso:
Advertências:
Opção 2: Tenho o rsnapshot (rsync) em execução na minha máquina, que faz instantâneos de hora em hora das minhas pastas selecionadas. Ele faz isso de forma incremental a cada hora, 2 horas ou o que você solicitar ao CRON. Após um dia inteiro, ele recicla esses instantâneos em um instantâneo diário e após 7 dias por semana, etc. Isso me permite voltar no tempo por cerca de um mês a cada hora! É muito bom com espaço em disco, pois cria links simbólicos para arquivos que nunca foram alterados ...
fonte
Recupere usando grep on
/dev/partition
( Linux ou Unix Recupere arquivos excluídos - cancele a exclusão de arquivos ),Apenas uma tentativa.
fonte
Existem utilitários não-excluídos para o ext2, mas a maioria dos outros sistemas de arquivos Linux está paralisada na Idade da Pedra e não possui recursos avançados de usabilidade. Triste estado de coisas considerando unidades gigantescas com espaço suficiente para nunca excluir um arquivo novamente é comum.
Então você está preso a três opções:
Faça backup regularmente, por exemplo, com um comando como:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Use uma ferramenta de controle de versão, como
git
em todo o seu trabalho. Embora isso não proteja contra um loucorm -r
que mata o repositório, ele protege contra problemas regulares, pois você estará usando ogit rm
não brutorm
.Seja extremamente cuidadoso e não confie demais
rm -i
,trash-cli
e amigos, pois a maioria dos dados que você perderá no shell não perderá acidentalmenterm
, mas por tubos mal direcionados, arquivos de saída digitados incorretamente, mal direcionadosmv
e outras coisas, ou seja, coisas que sobrescreverão seus dados, não apenas exclua-os.Faça os três para obter o máximo de segurança.
fonte
verifique isso ... pode ser útil http://artmees.github.io/rm/
suponha que você fez
do terminal. recuperar esse arquivo é um processo tedioso e nem sempre bem-sucedido
em vez disso, se você usou o script mencionado acima. você não precisa se preocupar com isso porque
são equivalentes. o script lida com mais casos e não altera o seu sistema
rm
, porque é colocado na pasta bin local do usuário, de modo que oculta a rm do sistema e ainda não o afeta ou desativa o usoessa é uma abordagem refinada de alias, mas sem perder nenhum recurso
fonte
O TestDisk pode recuperar arquivos dossistemas dearquivos FAT, exFAT, NTFS e ext2 .
fonte
Para mim (opensuse salto 42.2, pendrive NTFS) PhotoRec - também pelos
testdisk
criadores - funcionou :) No entanto, ele não recuperou os nomes dos arquivos.Instalei-o usando repositórios padrão no openSUSE
instrução
fonte