Tenho alguns arquivos com nomes em idiomas estrangeiros na pasta do meu terminal. No terminal quando eu ' ls
' vejo a lista à direita na imagem abaixo.
Quando o faço ls -t | tail -n +2
, vejo os personagens reais como na imagem abaixo.
Eu gostaria de escrever a lista de nomes de arquivos em caracteres originais como na 2ª foto em um arquivo csv? Existe uma maneira de fazer isso? Encontrei perguntas muito semelhantes aqui, mas os nomes dos arquivos não eram estrangeiros nessas perguntas. Aqui como fica se eu usarls -t | tail -n +2 > files.csv
Mas eu gostaria de ter a lista com nomes originais porque preciso obter informações meta de um arquivo existente com base em nomes originais em que os nomes dos arquivos não estão em nenhuma ordem e o número de arquivos também é diferente.
No MobaXterm, quando vou para configurações no terminal, o charset é selecionado como UTF-8 (codificação). Além disso, verifiquei se vejo UTF-8.
~$ locale -a
C
C.UTF-8
POSIX
Parece que esses nomes de arquivo estão codificados em UTF-8, seu terminal está em UTF-8, mas sua localidade não.
locale charmap
provavelmente gera algo comoANSI_X3.4-1968
(também conhecido como ASCII). ASCII não define nenhum caractere com um codepoint acima de 127. Os caracteres UTF-8 não-ASCII são todos codificados em 2 ou mais bytes, todos maiores que 127.ls
renderiza esses bytes?
porque eles não formam caracteres imprimíveis em ASCII (o charmap de localidade atual).Você gostaria de usar uma localidade em que o charmap fosse UTF-8. Na sua lista de localidades disponíveis
locale -a
conforme relatado por , isso deixa apenasC.UTF-8
.Corre:
Você pode precisar desarmar algumas
$LC_XXX
variáveis se elas forem definidas para outra coisa.Observe que os produtos da Microsoft podem não reconhecer arquivos UTF-8 como tal, a menos que comecem com um
ZERO WIDTH NO-BREAK SPACE
caractere (também usado como marca de ordem de byte em UTF-16, não há problema com a ordenação de byte em UTF-8).Você pode adicionar esse caractere e também converter os finais de linha para o formato da Microsoft com: