Como apagar o arquivo com o caractere de opção no nome no Linux?

4

Eu tenho um arquivo chamado -T na minha caixa linux, e achei que poderia fazer

 rm "-T"

ou

 rm "\-T"

ou

 rm \-T

ou

 rm *T

Infelizmente, fiquei sem truques simples (ou estou enganando-os).

Continuo recebendo a mensagem de erro:

rm: invalid option -- T

Eu tenho certeza que eu poderia excluir este arquivo com algum cliente de FTP, mas isso parece trapaça. Alguém pode me apontar na direção certa?

    
por cgp 08.07.2009 / 19:27

6 respostas

18

Muitos comandos * nix têm uma opção '-', que significa "é aí que as opções terminam, qualquer coisa daqui em diante que pareça uma opção, não é".

rm -- -filename

Não tenho 100% de certeza se o rm suporta isso, estou um pouco enferrujado.

    
por 08.07.2009 / 19:32
13

Use a opção "-" para informar ao rm que não há mais opções disponíveis.

 rm -- -T

Você também pode colocar um "./" na frente do arquivo assim:

 rm ./-T

Como uma terceira opção, você pode usar um visualizador de arquivos gráficos e arrastá-lo para a lixeira.

    
por 08.07.2009 / 19:29
7

Tente prefixar seu arquivo com ./ Acho que isso funciona.

    
por 08.07.2009 / 19:29
2

Eu só tive que tentar:

gw:~/kana # rm -T
rm: invalid option -- 'T'
Try 'rm ./-T' to remove the file '-T'.
Try 'rm --help' for more information.
gw:~/kana # rm ./-T
    
por 08.07.2009 / 19:31
1

Coloque o diretório atual na frente do nome do arquivo, o que impedirá que o programa pense que você está passando um parâmetro para ele.

$ rm ./-T

-Kevin

    
por 08.07.2009 / 23:40
1

Bem, antigamente você poderia usar ls -il ou stat para imprimir o inode do arquivo, em seguida, usar find com um sinalizador -inode e usar -exec para chamar rm nesse arquivo!

Eu acho que o pós-início dos anos 90 ainda está me chamando ......:)

    
por 09.07.2009 / 06:22