Cite-o:
rm -i '~'
rm -i "~"
rm -i \~
Ou referenciá-lo por um caminho, em vez de apenas um nome de base:
rm -i ./~
rm -i /path/to/~
Note que, apesar de ser um nome de personagem único de aspecto engraçado, isto não é conceitualmente diferente do que se você tivesse criado um arquivo chamado SOME$PATH
fazendo
touch 'SOME$PATH'
E tentou removê-lo fazendo:
rm -i SOME$PATH
( Atenção: a variável SOME$PATH
não é citada para o exemplo aqui. Normalmente, seria colocada entre aspas 'SOME$PATH'
)
Em ambos os casos, o shell está expandindo o nome que você dá, e você precisa evitar isso.
Além disso: não use rm -rf
para remover um arquivo! Todo o propósito para rm -r
é informar rm
, é OK remover diretórios. Se você não quiser remover acidentalmente diretórios inteiros ao tentar remover arquivos, não passe habitualmente -r
!