Já apareceu em seu sistema um arquivo com algum nome estranho que você não consegue deletar por nada neste mundo?
Arquivo com nome estranhos começando com alguma letra do alfabeto são facilmente removidas usando caracteres coringas como * e ?, mas o problema ocorre quando a primeira letra é um caracteres especial. No meu caso o arquivo chamava-se “-p”, e não poderia ser removido facilmente, pois qualquer tentativa de passar a primeira letra do arquivo era interpretado como parametro para o comando de remoção.
A solução encontrada é usar a informação do inode:
$ ls -i
439936 -rwxr–r– 1 alan alan 672 2005-10-07 21:35 -p
$ find . -inum 439936 -exec rm ‘{}’ \;
Este comando procura a partir do diretório atual o arquivo com o inode listado anteriormente, quando encontra, é executado (-exec) o comando rm ‘{}’, o ‘{}’ representa a lista de nome retornados pelo find.
Após verificar que o comando acima funciona, resolvi criar o arquivo novamente e substituir o rm ‘{}’ por echo ‘{}’, isto me retornou:
./-p
Então resolvi testar:
$ rm ./-p
Pronto, funcionou.
Conclusão, eu estava tendo apagar executando rm “-p”, rm \-p, rm *p, mas não testei rm ./-p, que poderia resolver o problema, de qualquer forma poderei usar o comando acima para apagar arquivos onde o rm ./arquivo não funcione.
Alan