Sistemas de arquivos Unix tendem a ser agudos no idioma, no sentido de que os nomes de arquivos consistem em bytes e é o negócio do aplicativo decidir o que esses bytes significam se ficarem fora do intervalo ASCII. A convenção no unix hoje é codificar nomes de arquivos e tudo mais em UTF-8, além de alguns ambientes legados (principalmente asiáticos). Os sistemas de arquivos do Windows, por outro lado, tendem a ter uma codificação que é especificada nas propriedades do sistema de arquivos.
Se você precisar trabalhar com nomes de arquivos em uma codificação diferente, crie uma visualização traduzida desse sistema de arquivos com convmvfs . Vejo trabalhando com nomes de arquivos em uma codificação diferente ssh
Parece que seu sistema original tem nomes de arquivos codificados em latin-1. Seu sistema atual usa UTF-8 e a sequência de um byte que representa å
em latin-1 ( 5
) é uma sequência inválida em UTF-8, que ls
imprime como ?
. Seu processo de backup de alguma forma resultou em nomes de arquivos codificados em UTF-8. O Samba traduz nomes de arquivos com base em sua configuração.
Para acessar os arquivos originais com sua codificação nativa, faça uma visualização recodificada:
mkdir /original-recoded
convmvfs -o icharset=LATIN1,ocharset=UTF8 /original /original-recoded
diff -r /original-recoded /frombackup
(Você pode precisar de outras opções dependendo de quais permissões e propriedades você deseja obter.)