Como posso remover um arquivo ou diretório chamado “\”?

18

Estou usando o terminal em uma máquina Ubuntu e há um arquivo que gostaria de excluir. O nome do arquivo é \ (apenas uma barra invertida).

Agora, normalmente eu apenas faço

rm filename

No entanto, se eu fizer rm \ , acho que estou tentando escrever um comando de várias linhas.

Como posso excluir este arquivo? Eu sei que eu poderia apenas usar o sistema de arquivos GUI, mas isso não é muito eficiente.

Então, como eu posso deletar (no terminal) um arquivo chamado \ ?

    
por Nosrettap 29.07.2013 / 20:24

3 respostas

47

Use rm \ (escape da barra invertida com outra barra invertida). Observe que isso também funciona de maneira similar, para diretórios denominados \ (usando rmdir ou rm com o -r flag).

Exemplo:

>mkdir demo
>cd demo
>touch \
>ls -l
total 0
-rw-------  1 hennes  users  0 Jul 29 20:25 \
>rm \
>ls -l
total 0
    
por 29.07.2013 / 20:27
14

Uma tática geral para excluir manualmente arquivos com caracteres inadequados em seus nomes é

rm -i ./*

Isso solicitará que você escolha se deseja ou não excluir cada arquivo no diretório.

    
por 30.07.2013 / 04:45
12

Você também pode desvincular referenciando o inode de um arquivo

linus ~/test $ touch \
linus ~/test $ ls -li
total 0
15204561 -rw-r--r-- 1 pat sudo 0 Jul 29 23:03 \
linus ~/test $ find . -inum 15204561 -exec rm -v {} \;
removed './\'
linus ~/test $ ls -li
total 0
linus ~/test $ 
    
por 30.07.2013 / 05:12