Os arquivos / diretórios excluídos com rm podem ser restaurados?

69

É possível restaurar arquivos / diretórios excluídos do terminal usando rme rm -r? Se um arquivo for excluído da interface gráfica, ele poderá ser restaurado do lixo, mas como você restaura um arquivo se ele for removido usando o utilitário rm ?.

user3215
fonte
de ferramentas para recuperar arquivos apagados (em qualquer forma), você pode dar uma olhada para esta questão askubuntu.com/q/3883
Decio Lira
Não use "rm" se você deseja restaurar os arquivos no futuro .Você pode usar "rm-lixo" utilidade: github.com/nateshmbhat/rm-trash
Natesh bhat

Respostas:

63

Para esse fim, uso o trash-clipacote e o alias a seguir no meu~/.bashrc

alias rm=trash

E o trash-clipacote pode ser instalado pelo comando followoing: sudo apt-get install trash-cli.

Os arquivos que você remover serão movidos para a lixeira e você poderá vê-los na lixeira do nautilus.

Você sempre pode acessar o real rmusando um dos seguintes métodos:

command rm something
'rm' something
\rm something

Há também comandos para acessar a lixeira do terminal, trash-list, restore-trash(ou trash-restore), trash-emptyinstalável do pacote de trash-cli (depois ver suas páginas man).

Última observação, não é aconselhável usar esse alias para superusuário, pois isso pode interferir nas operações do sistema.

enzotib
fonte
19
É uma solução alternativa, mas realmente não responde à pergunta.
Evgeny 13/10/10
Eu acho que o usuário também gostaria de saber se existe algum método para obter o mesmo comportamento na linha de comando. Caso contrário, estou pronto para remover minha resposta.
enzotib 13/10/10
3
É bom. Eu ganhei algum conhecimento.
user3215
27

A exclusão do terminal a exclui permanentemente - a recuperação é muito difícil e às vezes impossível.

Se o seu tipo de partição for ext3(verifique usando System->Administration->Disk Utility), dê uma olhada no ext3undel .

Se não estiver (se você instalou o Ubuntu com as configurações padrão ), tente o extundeleteprograma.

Não há garantia de que você recuperará qualquer coisa.

evgeny
fonte
Seria realmente útil para edições na área de trabalho.
user3215
Duvido que isto funciona de forma eficaz para drives SSD, mas feliz ao ouvir de outra forma
mate
13

Você está procurando: extundelete - utilitário para recuperar arquivos excluídos da partição ext3 / ext4

Para encontrar esse pacote, você pode tentar: apt-cache search undelete

Para usar o utilitário, instale-o com: sudo apt-get install extundelete

Após a instalação, invoque man extundeletee estude-o com cuidado.

H.-Dirk Schmitt
fonte
6

Apenas como alternativa, se você souber especificamente que tipo de arquivo é ...

sudo apt-get install foremost

Agora abra /etc/foremost.confe você verá uma longa lista de linhas comentadas. Se o seu tipo de arquivo existir, remova o comentário da linha (você também pode remover as linhas irrelevantes).

Se o seu tipo de arquivo não existir, adicione sua própria linha. Digamos que quero recuperar um arquivo .css e sei que ele tem cerca de 40K. Eu poderia adicionar isso:

css     n       40000   Theme\sName:     Plugin\sFixes

A segunda coluna refere-se à distinção entre maiúsculas e minúsculas, a terceira coluna refere-se ao limite superior de tamanho, a quarta coluna é como o arquivo é iniciado (lembre-se de usar caracteres de escape) e a última coluna é como o arquivo geralmente termina.

Use o seguinte comando (edite o disco adequadamente. Pode verificar com o dfcomando)

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

O que acontecerá a seguir é que, acima de tudo, criará uma pasta chamada output e despejará todos os dados recuperados (neste caso) na pasta. A partir daí, você pode usar diffou meldcomparar os 'arquivos' recuperados e ver qual é o mais atualizado.

Reuben L.
fonte
Muito obrigado. Funcionou perfeitamente. Eu removi acidentalmente meu phparquivo de origem usando rm -fr php/2 phparquivos. Menos de 2 minutos foram recuperados perfeitamente. No .confarquivo que adicionei:php n 40000 <?php ?> ASCII
Shakiba Moshiri
5

Falando nos termos mais abstratos, sempre que você exclui um arquivo na interface gráfica, o arquivo é "movido" para um "buffer" especial, um diretório chamado trash. Você pode localizá-lo em seu homediretório ~/.local/share/Trash/,. Os arquivos "excluídos" deste diretório serão realmente excluídos. Essa exclusão real é o que acontece quando você usa rmum arquivo.

É extremamente difícil recuperar arquivos excluídos. Os arquivos no sistema de arquivos são representados como nós em uma árvore B ou similar. Quando um arquivo é excluído usando rm, a árvore é atualizada, o número de links físicos é reduzido e a entrada correspondente na listagem de diretórios é removida. Se o seu arquivo tiver um link físico, é absolutamente seguro. Você pode fazer um file / -samefile filename. Você pode pesquisar o arquivo se lembrar também do número do inode (esse não é o caso).

Outro caso é quando nenhuma das possibilidades acima é verdadeira. Sempre que você cria rmum arquivo, a entrada do arquivo no diretório é removida, reduzindo o número de links físicos em um. E se o número de links físicos cair para zero, o ponteiro para o arquivo no inode será descartado ou marcado para ser excluído. De qualquer maneira, seu arquivo "imóvel" reside no disco rígido. Na verdade, o arquivo é apagado do disco rígido apenas na remontagem subsequente. A recuperação de arquivos nesse momento é extremamente difícil, envolve percorrer a árvore do sistema de arquivos e os inodes que representam os locais reais dos blocos de disco. Já ouvi falar de uma ferramenta popular, mas nunca a usei extundelete. Embora não haja garantia, vale a pena tentar.

Depois de recuperar seus arquivos com sucesso ou não, apresse-se para fazer backups regulares. É extremamente simples no Ubuntu.

John Strood
fonte
2

Desculpe, mas os arquivos excluídos de uma linha de comando com os "rm" e "rm -f" ignoram o "Lixeira" que você possui na área de trabalho do Gnome.

Você também pode perguntar se existem ferramentas extfs "undelete" como existem para FAT e NTFS. (Não conheço nenhum, mas ficaria surpreso se não houvesse.)

Stéphane
fonte
Oh ... está tudo bem! Eu pensei que poderia ser recuperado de algum local.
user3215
1

use o utilitário " rm-trash ", que lida com os coloca no lixo para recuperação posterior e suporta todas as opções do comando "rm".

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

"rm-lixo" é

  • destinado a ser usado no lugar de rm
  • lida com todas as opções que a rm pode usar
  • lida com as colisões de nomes de arquivos com os arquivos que já estão no lixo
  • lida com alguns problemas de permissão automaticamente
  • se rm for chamado de qualquer outro script ou indiretamente, o comando 'rm' do sistema será usado automaticamente
  • mostra as mensagens de erro apropriadas, como as que surgem no rm
Natesh bhat
fonte