Codificação de nome de arquivo

Iniciado por NewWave, 11 de Junho de 2010, 12:00

tópico anterior - próximo tópico

NewWave

Falaê, galerinha! ;)
Tudo joinha?

Pessoal, eu tô aqui a 300 anos querendo fazer um bendito backup, no intúito de formatar a minha máquina, criar novas partições, reinstalar uma nova ditro (de Kubuntu pra Ubuntu), etc., mas uma série de problemas tem ocorrido e que não me deixam fazer esse backup. Um dos problemas que tem me atormentado é o da codificação dos nomes dos arquivos. Eu devo ter aqui uns 400 arquivos que não conseguem ser transferidos via rede por conta dos seus nomes estrambólicos. Numa pesquina no google, a única solúção que eu encontrei foi o convmv, mas este me parece que só converte de um em um arquivo. Eu preciso de uma solução que me permita converter nomes de arquivos em massa e recursivamente, em pastas e subpastas, de forma automática, e que reconheça se o nome do arquivo já está em utf-8 ou em qual formato está. Em resumo, eu preciso varrer toda a pasta /home em busca de "erros" e que sejam corrigidos automaticamente.
Alguém tem alguma luz?

Grande abraço a todos!
Bom FDS e se beber, me chamem! :D

musinet

NewWave,

Há muito tempo eu não tenho essa necessidade, mas nos tempos de HP-UX eu seguidamente fazia renomeações de arquivos em lote, e para isso usava o recurso do shell (equivalente ao arquivo .BAT do DOS/Windows).

Use o comando ls para armazenar todos os arquivos em um arquivo texto. Os arquivos estarão dispostos em uma "coluna" (um arquivo por linha). Use um editor de texto para copiar acrescentar um espaço no final de cada linha e depois copie a coluna com os nomes dos arquivos para após o espaço acrescentado. Faça as correções desejadas na segunda coluna, usando o recurso de "find+replace" que todo editor possui. Depois acrescente o comando mv no início de cada linha.

Saia do arquivo (salvando-o, naturalmente), mude suas propriedades para torná-lo executável e depois execute-o.

Abs.
Cassiano