Use singlequotes para impedir que os caracteres de controle sejam processados:
rm -f '<Down>'
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?
Use \ para escapar de caracteres especiais. Neste caso, você usaria
rm \<Down\>
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
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
digite rm <D
e, em seguida, pressione TAB
,
mostrará sugestões, para o nome do arquivo desejado ..