A maneira mais segura de excluir coisas com nomes estranhos é usar a ação find
do -delete
. Por exemplo
find . -inum 16613511 -delete
ou
find . my_file?.txt -delete
Eu escrevi um script em Perl e digitei o nome do meu arquivo de saída inserindo um espaço no nome do arquivo, então agora eu tenho my_file .txt
Eu tentei o seguinte sem sucesso (e sem erros relatados):
rm ./my_file\ .txt
rm "./my_file .txt"
find . -inum 123 -exec rm -i {} \;
Nenhuma das opções acima remove o arquivo, nem recebo um erro, aviso etc.
Eu possuo o arquivo, o diretório e tenho as permissões apropriadas. O filehandle está fechado e lsof ./my_file\ .txt
não mostra o arquivo em uso em outro lugar. Meu google fu falhou comigo, por isso obrigado antecipadamente por qualquer ajuda que você pode oferecer.
EDIT: saída de stat:
$ stat my_file\ .txt
File: 'my_file .txt'
Size: 4096 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 16613511 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 4939/ abc1111) Gid: ( 100/ ABware)
Access: 2013-07-02 09:27:32.000000000 -0500
Modify: 2013-07-02 10:57:21.000000000 -0500
Change: 2013-07-02 10:57:21.000000000 -0500
Tags linux