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

Desfazer um comando "rm -rf ~"?

Eu tinha uma pasta que não queria nomeada ‘~’, por isso a partir da linha de comando escrevi

rm -rf ~

e acidentalmente apaguei a minha pasta de casa (uma vez que ~ resolvi para /home/username). Existe alguma forma de voltar atrás ou preciso basicamente de recriar a conta a partir do zero?

Respostas (12)

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

Em geral, não há um caminho fácil de regresso.

Poderia restaurar a partir do seu backup diário.

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

Outros (tais como @RiMMER , @Adam , e @James T ) mencionaram que, para a maioria dos sistemas de ficheiros, é possível recuperar a maior parte ou todos os seus dados (talvez sem nomes de ficheiros), porque os dados não são realmente zerados, apenas removidos da tabela de ficheiros. Isto não é apenas verdade para o Linux - o mesmo é verdade para o Windows e Mac.

No entanto, ninguém mencionou a coisa mais importante - VOLTE O SEU COMPUTADOR. AGORA..

Muitos programas - incluindo o browser de Internet que está a utilizar neste momento - irão armazenar dados no disco rígido, e praticamente tudo o que fizer pode fazer com que o seu computador redimensione/escreva para o ficheiro swap. Ambas as coisas irão escrever para sectores livres no disco rígido, potencialmente sobrescrevendo os seus preciosos dados.

Assim, desligue o seu computador, retire o disco rígido, e coloque-o noutro computador. Monte o disco rígido como sendo apenas de leitura, e recupere os ficheiros num disco rígido separado. Quando tiver recuperado tudo o que puder de interesse - e apenas então - escreva os ficheiros de volta para a unidade original.

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

Creio que cada utilizador de linux num determinado momento deve aprender esta dolorosa lição em primeira mão antes de aprender realmente a importância dos backups, bem como prestar atenção aos detalhes e ser cuidadoso.

Por exemplo, se estiver a apagar ficheiros com aspecto estranho, poderá primeiro executar comandos nesse ficheiro estranho que não tenham efeitos secundários e que não façam alterações aos seus dados. Por exemplo, se tivesse executado

cd ~

antes de tentar apagar a pasta, teria visto que, em vez disso, mudaria o directório para a sua pasta home, e não para a pasta ~. Uma vez percorridos os passos de resolução de problemas suficientes para aprender o verdadeiro comando de que precisaria para corrigir cd para a pasta ~, então poderia premir a tecla de seta para cima para puxar o último comando do histórico e depois alterar cd para rm e então e só então tentar apagar a pasta.

sugiro que tome medidas como esta antes de executar qualquer acção que seja permanente. Não é permanente ou infalível, mas tem muito mais hipóteses de evitar esses momentos oops se tomar este grau de cuidado ao executar acções que têm efeitos secundários.

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

Se estiver a utilizar o sistema de ficheiros ext3, então ext3grep é o seu novo melhor amigo. Um bom tutorial (entre muitos outros) sobre a utilização do ext3grep pode ser encontrado aqui .

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

Pode tentar usar testdisk para anular ficheiros individuais . Isto, aparentemente, só funciona em ext2 e NTFS (mas ainda vale a pena tentar).

Se tiver ext3 ou ext4, pode recuperar ficheiro conhecido s usando photorec , o que provavelmente acabará por recuperar mais do que deseja. A Photorec recupera ficheiros sem a informação do nome do ficheiro para que possa ser aborrecido percorrer os ficheiros.

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

Se tiver um disco externo suficientemente grande, tem outra opção possivelmente mais segura. Precisará de espaço suficiente para guardar toda a divisória da casa, incluindo espaço livre.

Boot a partir de um CD e não montar de todo a unidade doméstica. Monte a unidade externa. dd a partição da unidade doméstica num ficheiro na unidade externa. monte o ficheiro como um dispositivo de loopback faça o seu trabalho de undeleting nesta imagem, com a certeza de que não pode fazer nenhum dano ao seu sistema de ficheiros original. Dependendo do sistema de ficheiros, pode haver muitas coisas a tentar, algumas delas potencialmente destrutivas.

Isto salvou-me uma vez com uma versão beta do Reiser4 quando eu não sabia o que faria mesmo que o montasse apenas lido. Li algures na altura que a revista ainda era possível escrever.

É também uma boa técnica para guardar dados de um disco a morrer.

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

Existem técnicas para recuperar ficheiros através da inspecção dos inodes que não tenham sido reciclados. Quanto mais dados forem escritos no sistema de ficheiros após a eliminação, menor é a probabilidade de recuperar os seus dados. A melhor estratégia para recuperar de uma eliminação acidental de dados é restaurar a partir de uma cópia de segurança.

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

Lamento pelos seus dados. Toda a gente já se debruçou sobre como lidar com o seu problema de dados, mas aqui ficam algumas informações sobre como lidar com a próxima vez que vir uma pasta chamada ~.

  1. encontre quem o criou e certifique-se de que nunca mais o faz.
  2. Não use -rf& ou quaisquer argumentos poderosos loucos para rm para fazer a eliminação. Em vez disso, leve-o bem e devagar e certifique-se de que consegue ver o que está a acontecer. É possível entrar no til sem que este se expanda para o seu directório home, escapando-lhe na concha. Em teoria você poderia rm -rI \~, no entanto, pode ir um passo mais além.
  3. primeiro, cd \~ para entrar nessa pasta, talvez até usar pwd para verificar que lá chegou. Dez remova o seu conteúdo enquanto lá estiver. Novamente tenha cuidado mas limpe a pasta com rf -rI *& e se precisar de obter .*& também.
  4. Agora volte a subir com cd .. e remova o directório com rmdir \~.
2
2
2
2011-05-06 05:30:57 +0000
alias rm="rm -i"

Assumindo que está a utilizar o Bash shell (coloque isto no seu ficheiro .bashrc para que ele persista em novos shells que abra).

Isto deve resultar em rm pedir-lhe que confirme o que quer apagar, o que é bom especialmente quando está a fazer -rf, mas também irá expandir ‘~’ para o caminho completo para o seu directório home no prompt, o que lhe deve dar uma pista de que não está a apagar um ficheiro ‘~’ mas sim o seu homedir.

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

Isto não é tecnicamente uma resposta à sua pergunta, mas poderá ajudá-lo a evitar tal problema no futuro.

EDIT: Algumas pessoas podem desencorajá-lo de utilizar esta técnica, uma vez que o torna menos cuidadoso com o comando “rm”. Na minha experiência, isto está longe de ser verdade. Na realidade, o efeito do pseudónimo é desencorajá-lo de usar “rm -rf” - como sabe resultará em muitos avisos que não quer responder - e para obter um “rm -rf” sem prontidão precisa de se referir deliberadamente ao comando rm como /bin/rm (ou o que quer que seja). Isto leva a uma utilização muito mais consciente e deliberada do comando “rm” em geral - uma vez que necessita sempre de preceder a utilização do rm com uma escolha mental de “rm ou /bin/rm” - tanto no seu servidor como em qualquer outro em que esteja ligado. E um mundo onde toda a gente pensamento antes de usar rm seria de facto mais seguro!

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

Acabei de cd .snapshot e restauro os ficheiros. Mas, faço isto no trabalho e não faço ideia de de onde vem o directório .snapshot. Pensei que talvez fosse uma funcionalidade do Linux.

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

Ferramentas de recuperação - Linha de Comando :

** Ferramentas de recuperação - Gui : **

*Infos : *

Na minha experiência pessoal recebo os meus dados de volta usando “UFS Explorer” e photorec

(1) = Não tem fonte aberta, não é grátis

(2) = Não tem fonte aberta, é grátis

(3) = Tem fonte aberta e é grátis

(4) = Tem suporte ntfs

(5) = Tem recurso de estrutura de directório

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

rm é para sempre.

Embora isto não o ajude agora, poderia no futuro não usar rm ou para realmente se forçar, adicionar um script encontrado anteriormente no seu caminho chamado rm que move os ficheiros para uma pasta de lixo que você limpa noutra altura (permitindo-lhe cometer erros e não ser SOL).