terça-feira, 26 de julho de 2011

Converter codificação em nomes de arquivos.

Quem aqui, usuário de linux, nunca teve dificuldades para acessar/renomear arquivos portados de outros sistemas operacionais devido às diferenças de codificação?

Eu já sofri muito com isso. Principalmente ao baixar arquivos compactados em formato ZIP no Windows.

Minha solução até ontem era utilizar softwares ou scripts escritos em python para executar tal função.

Hoje encontrei o convmv. A situação não mudou muito, afinal ele é escrito em perl e não deixa de ser um script. A diferença é que o script é encontrado nos repositórios do Fedora e é super fácil de usar. Basta ter uma familiaridade com o man, leitor de manuais do linux. Ou, se preferir, tem o manual online do convmv.

Executando o comando convmv --list você obterá uma lista de codificações suportadas, e como tais codificações devem ser passadas ao script.

A syntax é convmv -f codificação-1 -t codificação-2 arquivo(s) para ver o resultado, onde -f é referente a codificação atual e -t é referente a codificação que você deseja. Se o resultado for exatamente o que você quer, o próprio script avisará que o usuário deverá acrescentar a opção --notest para efetuar a mudança. O comando então será
convmv -f codificação-1 -t codificação-2 --notest arquivo(s)

Eu usei num diretório com vários arquivos mp3 e ficou assim:
convmv -f iso-8859-1 -t utf8 --notest *

Espero que gostem da dica, e até a próxima!
Abraços!!
Follow Me on Twitter