Eu executei este comando ontem, pensei em uma máquina de teste, mas era um servidor de arquivos conectado através do SSH.
sudo rm -rf /tmp/* !(lost+found)
Meu emulador de terminal é o Konsole. Meu sistema é o Debian 7.
Questão:
Este comando excluiu outros arquivos além dos arquivos em / tmp?
files
filesystems
rm
tmp
alguma coisa alguma coisa
fonte
fonte
dsgsadfsf
e pressione enter. Veja o resultado. Se forbash: dsgsadfsf: command not found
, então seu shell ébash
.Respostas:
A sintaxe correta no bash é a seguinte:
Como o @goldilocks escreveu nos comentários, o comando original faz uma expansão na consulta (ele exclui todos os arquivos da
/tmp
pasta, continua e exclui todos os arquivos da pasta de trabalho atual, no seu caso, ahome
pasta).Você pode tentar verificar se consegue recuperar alguns dos seus dados. Há uma pergunta sobre a recuperação de dados do Linux aqui .
fonte
rm -rf / tmp
^^sudo
, portanto, uma pasta normal apenas gravável para raiz não teria necessariamente ajudado.O comando que
!(lost+found)
vocêrm
comandou foi provavelmente o erro fatal:Não sei exatamente o que
bash
está fazendo com isso, mas este comando abaixo imprime tudo no meu/tmp/
diretório e também todo o meu diretório atual (atualmente~
):fonte
!(folder)
é parte de um comando que executei uma vez, que excluiu tudo, excetofolder
.!lost+found: event not found
como!
é usado para recuperar comandos do histórico.cd /; echo !(lost+found)
> _ <!(foo)
funciona no bash como "todos exceto foo" somente se aextglob
opção estiver definida. Além disso, o OP não especificou qual shell ele está usando, então é realmente difícil adivinhar o que exatamente orm !(lost+found)
comando fez no seu caso.bash
como shell padrão. Ele provavelmente não mudou isso. Além disso, no Debian 7, aextglob
opção está definida comotrue
padrão (acabei de verificar isso).