A remoção da pasta ~ / tmp removeu todos os dados e reinicializou o Mac OS X 10.10 (Mavericks)

-1

Eu estava tentando remover dados da minha própria pasta temporária criada no diretório inicial, mas acabei acidentalmente excluindo o diretório padrão "tmp" em casa ~/tmp . E para o meu mais profundo choque, eliminou praticamente tudo! Nada em “Lixeira”. Todos os meus documentos, downloads, fotos, projetos. GONE!

Eu não tenho a máquina do tempo de volta também. mas eu não entendo o que acontece quando eu apaguei essa pasta tmp ! Eu lembro que costumava ter alguns npm-* arquivos / pastas. Como diabos conseguiu poder para acabar com tudo? É claro que usei sudo , mas também usei milhões de vezes no trabalho no linux e isso nunca aconteceu. Como me recupero disso?

Este foi o comando que causou estragos

sudo rm -rf * tmp/
    
por nir 08.03.2015 / 04:40

2 respostas

3

Você afirma que deseja excluir o conteúdo deste: ~/tmp . Mas o comando que você diz que correu é isto:

sudo rm -rf * tmp/

Lamentamos informar que todo o conteúdo do diretório em que você estava quando executou esse comando, provavelmente o seu diretório pessoal, foi eliminado quando você executou esse comando.

O comando que você deve ter executado é este:

sudo rm -rf ~/tmp

Ao executar o primeiro comando, isso é o que deu errado:

  1. Você tinha um caractere curinga ( * ) que significa basicamente "Atuar em tudo a partir desse diretório, incluindo diretórios filhos".
  2. Existe um espaço entre o * e o tmp/ , o que não faz sentido.
  3. A maneira como o rm funciona é que ele excluirá todos os itens na lista delimitada por espaço com a qual ele foi fornecido. Então, quando você executava sudo rm -rf com * tmp/ , basicamente dizia ao sistema para “Atuar em tudo a partir deste diretório, incluindo diretórios filhos, e quando isso for feito, exclua o diretório tmp/ depois disso”. E, claro, o -r disse rm para pesquisar em seus diretórios filhos recursivamente .

Então, quando tudo estiver dito e pronto… Sim… Você disse ao Mac OS X - via “Terminal” - para excluir todos os arquivos e diretórios de qualquer diretório em que você executou esse comando.

Além disso, você diz isso:

Nothing in “Trash.” All my documents, downloads, pictures, projects. GONE!

A “Lixeira” não desempenha nenhum papel no “Terminal”, já que todo o conceito de “Lixeira” é uma parte de segurança do sistema “Finder” do Mac OS X. Quando você apaga algo no “Finder”, ele vai para o “Lixeira”, mas se você executar rm do “Terminal”, o (s) item (ns) será (ão) apagado (s). A menos que você tenha um backup, o material desapareceu. Desculpa. Nada pode ser feito.

É por isso que, no mundo da linha de comando - e agindo em arquivos como este - é sempre recomendado que você faça um comando de "execução a seco" com ls (lista o conteúdo do diretório) assim:

ls -la * tmp/

Como ls apenas lista arquivos e diretórios, ao executar ls -la with * tmp/ , você obterá uma listagem de todos os arquivos e diretórios aos quais os argumentos * tmp/ atuariam. E, em algum cenário alternativo, você veria imediatamente o que o comando faria se o executasse com o comando sudo rm -rf e saberia: “Ei! Isso parece errado ... ”e pule de volta para a prancheta para ver como reprovar seu esforço de limpeza.

    
por 08.03.2015 / 04:52
0

Se o seu diretório de trabalho era seu diretório pessoal, você excluiu todo o conteúdo do seu diretório pessoal, porque você especificou * , que é tudo no diretório atual. Como havia um espaço, tmp/ foi lido como outro argumento, mas isso não tem efeito, pois * apagou tudo.

Agora tudo o que você pode fazer é pesquisar por um software de recuperação de disco rígido.

    
por 08.03.2015 / 17:55