caractere especial no nome do arquivo (\ # 033OA)

8

Eu tenho um pequeno problema com um erro muito teimoso durante um rsync. É causado por um arquivo com um caractere especial em seu nome de arquivo. Houve outros, mas eu poderia resolver isso fazendo alguma conversão na codificação do nome do arquivo. No entanto, este arquivo não consigo encontrar.

Então, eis o que o rsync diz:

../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)

A primeira coisa que notamos é que o código do caractere não pode ser hexadecimal ou octal, então eu pesquisei no Google e encontrei apenas isto . Portanto, pode ser um caractere CURSOR UP (ou não). Eu tentei

ls -la *'printf '3OA''*

sem sucesso. Eu também tentei canalizar a saída de ls desse diretório para od sem sucesso.

O que mais posso fazer? Ou qual personagem estou procurando mesmo assim?

Obrigado

    
por luxifer 31.08.2011 / 11:24

2 respostas

7

Você pode usar a opção -b para ls , que mostra caracteres não gráficos como sequências de escape no estilo C.

    
por 31.08.2011 / 18:39
1

ls -aq imprimirá todos os nomes de arquivos, com ? em vez de cada caractere não imprimível. Em muitas variantes unix, ls -AB ou ls -Ab (verifique sua página de manual) imprimirá vazamentos octal. Com ls -aq , você pode usar a saída exibida como um padrão de shell.

$ ls -Aq
.?OA.tex.pyD0MB
… more stuff …
$ mv -i .?OA.tex.pyD0MB weird-file
$ less weird-file

Outra maneira de obter o nome do arquivo é usar a conclusão do seu shell: digite mv . e pressione Tab repetidamente até que o nome estranho seja inserido.

    
por 01.09.2011 / 01:22