Eu tenho alguns arquivos antigos de um sistema baseado em Latin1 com nomes inválidos no meu sistema UTF-8. Eles aparecem como vários códigos ou pontos de interrogação. Por exemplo:
/tmp/test $ ls -1
'FRg_Pause lecture_'$'\371''.png'
'FRg_Pause lecture_'$'\353''.png'
'FRg_Pause lecture_'$'\350''.png'
'FRg_Pause lecture_'$'\374''.png'
/tmp/test $ find .
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
/tmp/test $ tar cvfz test.tar.gz *.png
FRg_Pause lecture_\351.png
FRg_Pause lecture_\352.png
FRg_Pause lecture_\340.png
FRg_Pause lecture_\374.png
Eu gostaria de renomeá-los, de preferência para o nome UTF-8 correto. Por exemplo:
FRg_Pause lecture_\340.png -> FRg_Pause lecture_à.png
Mas mesmo renomeá-los para, eu não sei, "FRg_Pause lecture_340.png" seria ok. Desde que os novos nomes sejam UTF-8 válidos e nossas ferramentas parem de reclamar.
No entanto, uma complicação é que existem muitos arquivos que têm nomes UTF-8 corretos, então não posso simplesmente mudar o sistema operacional para Latin1 e terminar com isso. Eu preciso encontrar os arquivos que não são UTF-8 (e existem muitos, em muitos diretórios) e fazer algo sobre eles.
Alguma ideia? Para começar, acho difícil até encontrar os arquivos.
Obrigado Artem e MC68020 pelas sugestões nos comentários.
Infelizmente
detox
não funcionou porque queria criar duplicatas (por exemplo ,\340
e\342
ambos foram mapeados paraa
).Por outro lado
convmv
, fez o trabalho corretamente.Agora vamos corrigir os milhares de arquivos no NAS :)