Não é possível excluir o arquivo por meio de cotação, escape ou uso de inode

3

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
    
por knobcreekman 02.07.2013 / 19:55

1 resposta

4

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 
    
por 02.07.2013 / 20:16

Tags