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, aqui está o que o rsync diz:
../.\#033OA.tex.pyD0MB" failed: No such file or directory (2)
A primeira coisa que se percebe é que o código de caracteres não pode ser hexadecimal ou octal então eu pesquisei e encontrado somente esta . Portanto, pode ser um CURSOR UP
personagem (ou não). eu tentei
ls -la *`printf '\033OA'`*
para nenhum proveito. Eu também tentei canalizar a saída de ls desse diretório od
sem sucesso.
O que mais eu posso fazer? Ou que personagem estou procurando, afinal?
obrigado
ls -b
, que deve mostrar escapes de estilo CRespostas:
Você pode usar a
-b
opção parals
, que mostra caracteres não gráficos como seqüências de escape no estilo C.fonte
ls -aq
imprimirá todos os nomes de arquivo, com um em?
vez de cada caractere não imprimível. Em muitas variantes do unix,ls -AB
ouls -Ab
(verifique sua página de manual) imprime escapes octais. Comls -aq
, você pode usar a saída exibida como um padrão de shell.Outra maneira de obter o nome do arquivo de alguma forma é usar a conclusão do seu shell: digite
mv .
e pressione Tabrepetidamente até que o nome estranho seja inserido.fonte
ls -q
não mostrou o arquivo enquantols -b
fez. talvez porque seu nome de arquivo não era[weird-character]OA.tex
mas realmente`printf %b '\033OA'`.tex
.
no início do nome do arquivo, então você precisals -Aq
ouls -aq
. E se você usar curingas shell, precisará.
explicitar:*
não incluirá o arquivo, mas.*
incluirá.$DESTINATION/.$FILENAME
antes de mover o arquivo para o nome correto. Portanto, na fonte, o arquivo não tinha.
no início de seu nome. Além disso, como dito,ls -q
não teria mostrado o arquivo enquanto ols -b
fez.