Eu tenho um DE_CopyOldToNew.sh
arquivo que foi criado no Windows. O arquivo é então carregado no Linux usando WinSCP. O arquivo contém vários comandos cp que copia arquivos para uma nova pasta com um novo nome de arquivo sendo atribuído. Os comandos contêm pastas e arquivos com sinais diacríticos como Gewährleistungsbürgschaft
. Quando faço um cat DE_CopyOldToNew.sh
notei que os diacríticos são exibidos de forma "corrompida" como Gew▒hrleistungsb▒rgschaft
. Quando eu faço um, view DE_CopyOldToNew.sh
os diacríticos são exibidos como deveriam ser, como Gewährleistungsbürgschaft
. Quando executo meu script, recebo cp: cannot stat
erros e os sinais diacríticos nas pastas e arquivos são exibidos como Gew\344hrleistungsb\374rgschaft
. Eu carreguei o arquivo usando binary
também text
e também executei umdos2unix DE_CopyOldToNew.sh
. Quando copio o conteúdo do meu script no Windows e colo em um novo arquivo no Linux, consigo executar o novo script sem problemas. O que está fazendo com que a versão enviada esteja "corrompida" (por falta de uma palavra melhor)?
relate perguntas
-
Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?
-
Inicie/pare o serviço systemd usando o atalho de teclado [fechado]
-
Necessidade de algumas chamadas de sistema
-
astyle não altera a formatação do arquivo de origem
-
Passe o sistema de arquivos raiz por rótulo para o kernel do Linux
Seu arquivo está escrito em uma das codificações ISO-8859 (provavelmente Windows CP1252 ou ISO-8859-15), enquanto seu sistema baseado em Linux está configurado para esperar uma codificação UTF-8.
Você pode verificar isso com bastante facilidade:
Soluções?
Crie seu arquivo como UTF-8 no sistema de origem (os aplicativos do Windows suportam esse conjunto de caracteres)
Faça downgrade do seu sistema baseado em Linux de volta para ISO-8859. Não recomendado (mas possível)
Converta o arquivo depois de transferido: