Como você interage com um arquivo chamado “!!”? [duplicado]

4

Fora de moda, eu saí de vim usando :wq!!! . Isso criou um arquivo chamado !! .

Dado que !! referencia o comando anterior, a tentativa de interagir com ele produz resultados interessantes.

Eu tentei rm ./!! e rm -- !! . Ambos puxariam o comando anterior (como deveria).

Uma solução fácil é simplesmente iniciar um shell que não trata !! como algo especial, mas isso é muito fácil.

Como posso interagir corretamente com o arquivo no bash?

    
por Der Hochstapler 19.01.2015 / 14:46

5 respostas

5

Você pode remover o arquivo com o nome como !! , apenas escape:

rm \!\!

ou apenas rm !<TAB> - > rm \!\!

    
por 19.01.2015 / 14:50
1

Com o Bash, você pode usar rm - '!!'

$ cat '!!'
Lorem ipsum dolor sit amet
$ ls 
!!
$ rm '!!'
$ ls 
$
    
por 19.01.2015 / 15:26
0

Excape the "!" personagem com barra invertida. Ou desative a expansão do histórico.

set +o histexpand
    
por 19.01.2015 / 14:50
0

Sempre acho mais fácil agrupar nomes de arquivos / diretórios criados com caracteres especiais usando aspas simples:

rm '!!'
rm -rf '&$dir'
    
por 19.01.2015 / 15:00
0
\!\!

Você deve pegar um terminal que possa automatizar isso para você, no meu Terminal.app eu posso soltar qualquer coisa com um nome parecido

√ƒ¸[|¸ƒ¸|[∂[ƒ√[[ƒ||[]√ƒ√¸•[]¸√[®¸@£|[¸|[]]ƒ¸é[

E ele vai escapar por mim automaticamente. Considere fazer isso, para evitar fazer esses tipos de perguntas no futuro.

    
por 19.01.2015 / 15:20