não pode excluir um arquivo que começa com um '-' [duplicado]

0

eu tenho um arquivo é o nome

-ksh.l.15092015.log

para excluir este arquivo eu faço isso:

rm -rf -ksh.l.15092015.log

mas eu tenho esse erro:

rm: Not a recognized flag: k

Usage: rm [-firRe] [--] File...

eu fiz isso:

rm -rf *ksh*

mas eu tenho os mesmos erros, por quê?

Thx pela sua ajuda!

    
por Mercer 15.09.2015 / 11:53

2 respostas

3

Execute isto:

rm -rf ./-ksh.l.15092015.log
    
por 15.09.2015 / 12:00
4

Esta é uma boa pergunta, e pelo que me lembro, algumas entrevistas de sysadmin fazem uso dela.

Você tem várias maneiras de fazer isso:

  • Remova usando caminho relativo ou absoluto. Como SHW disse em sua resposta:

    rm -rf ./-ksh.l.15092015.log
    

    ou

    rm -rf /full/path/-ksh.l.15092015.log
    
  • Remova desativando a interpretação de traço ( - ) para rm

    rm -- -ksh.l.15092015.log
    
  • E a maneira mais complicada :), usando o inode:

    ls -li | grep ksh.l.15092015.log
    
    5383819 -rw-r--r-- 1 root root        0 sep 15 13:17 -ksh.l.15092015.log
    
    find . -inum 5383819 -delete
    

Você também pode usar mc e vim , mas estas são as formas "shell" que eu conheço.

    
por 15.09.2015 / 12:21