Remover um arquivo com Down no nome?

4

Então, em uma caixa do CentOS, eu acidentalmente executei :w<Down> em um editor de vim , com " <Down> " literalmente pressionando a tecla de seta para baixo no teclado (processada na tela como " <Down> "), e agora eu tenho um arquivo chamado " <Down> " que não consigo me livrar; executando " rm <Down> " (literalmente soletrando "menos que, D, o, w, n, maior que") dá um erro de sintaxe.

Como posso me livrar desse arquivo com o nome do funky?

    
por MidnightLightning 15.07.2010 / 20:26

5 respostas

12

Use singlequotes para impedir que os caracteres de controle sejam processados:

rm -f '<Down>'
    
por 15.07.2010 / 20:28
9

Use \ para escapar de caracteres especiais. Neste caso, você usaria

rm \<Down\>
    
por 15.07.2010 / 20:29
5

Como uma solução alternativa:

$ ls -il .
total 0
1439039 -rw-r--r-- 1 medina foo 0 2010-07-15 16:48 ?????

# http://www.gnu.org/software/findutils/manual/html_mono/find.html#Deleting-Files
$ find . -inum 1439039 -delete
    
por 15.07.2010 / 22:52
2

A maneira mais fácil que encontrei para lidar com todos os casos de escape é usar uma linguagem de script:

$ cd /tmp/test/
$ ls
<Down>
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.unlink('<Down>')
>>> quit()
$ ls
    
por 16.07.2010 / 16:09
1

digite rm <D e, em seguida, pressione TAB , mostrará sugestões, para o nome do arquivo desejado ..

    
por 16.07.2010 / 15:09