Descubra em que codificação os nomes de arquivo estão e use convmv
para renomeá-los.
Eu tenho muitos arquivos que vieram do arquivo zipado do Windows. Os arquivos tem acentos em nomes como:
"partyku? y no.doc" (esta é a string exibida no terminal linux)
Como descompactar ou talvez renomear com caracteres corretos?
ATUALIZAÇÃO:
Primeiramente eu extraio o zip no 'win xp' .. resultado:
lixo nos nomes
Próximo passo, descompacte em 'win 7' .. resultado:
nomes perfeitos.
Então eu baixei 7z para windows e comprimido como 7z e como um zip (ambos com 7z)
Em seguida, coloque os arquivos no linux e extraia-os com '7z x ..' nos arquivos.
7z cospe nomes corretos, mas não .zip.
Tive a sorte de ter acesso ao 'win 7', e se não? Substituição de caracteres como rody_o sugere?
Descubra em que codificação os nomes de arquivo estão e use convmv
para renomeá-los.
Eu suspeito que a verdadeira questão aqui é "como faço para transferir arquivos usando zip sem corromper nomes de arquivos não-ASCII?". Se este é o problema real que você está tentando resolver, tente usar a opção de linha de comando " -UN=UTF8
" para zip
quando você criar o arquivo. Isso forçará o zip a armazenar nomes de arquivos usando o UTF-8, que deve preservar caracteres não-ASCII.
Bem, se você tem certeza de que realmente é o nome do arquivo e não alguns conflitos de codificação, você pode renomear em massa esses arquivos com
rename s/REGEX/REPLACEMENT/ *.doc
ou, um pouco mais esteticamente,
rename s,REGEX,REPLACEMENT, *.doc
em cujo caso você não precisa escapar de coisas como ?
.
REGEX
e REPLACEMENT
são expressões regulares - rename
é basicamente sed
para renomeação de arquivos.
Quando renomear em massa com rename
, é sempre uma boa ideia executar rename
com a opção -n
antes fazendo a renomeação real. Esta opção significa "dry-run", então apenas imprima o que seria feito se o -n
fosse removido.
Não deixe de ler man rename
e / ou man sed
antes de experimentar.