Eu cometi um erro na noite passada, que apagou 1800GB do meu servidor de arquivos sem querer

27

Eu executei este comando ontem, pensei em uma máquina de teste, mas era um servidor de arquivos conectado por meio do SSH.

sudo rm -rf /tmp/* !(lost+found)

Meu emulador de terminal é o Konsole. Meu sistema é Debian 7.

Pergunta:

Este comando deletou outros arquivos que não os arquivos em / tmp?

    
por somethingSomething 13.11.2014 / 11:27

2 respostas

44

A sintaxe correta no bash é a seguinte:

rm /tmp/!(lost+found)

Como @goldilocks escreveu nos comentários, o comando original faz uma expansão em a consulta (apaga todos os arquivos na pasta /tmp , depois continua, e apaga todos os arquivos na pasta de trabalho atual, no seu caso a pasta home ).

Você pode tentar verificar se pode recuperar alguns dos seus dados. Há uma pergunta sobre a recuperação de dados do Linux aqui .

    
por 13.11.2014 / 14:32
25

O !(lost+found) no seu comando rm foi provavelmente o erro fatal:

1978  rm -rf /tmp/* !(lost+found)
1979  sudo rm -rf /tmp/* !(lost+found)

Eu não sei exatamente o que o bash está fazendo com isso, mas este comando abaixo imprime tudo no meu /tmp/ e também todo meu diretório atual (que atualmente é ~ ):

echo /tmp/* !(lost+found)
    
por 13.11.2014 / 13:07