Script - muda nomes de arquivos de iso-8859-1 para utf8 recursivamente
Publicado por Daniel Ribeiro da Silva (última atualização em 19/06/2011)
[ Hits: 5.511 ]
Homepage: http://danielbr-news.blogspot.com/
Download fix_filename_iso2utf8.sh
Como utf8 é o padrão mais adotado ultimamente e o windows tema em manter um padrão próprio (podemos chamar isso de padrão?!), resolvi fazer esse script para me ajudar no dia a dia:
A partir do diretório atual, vai corrigindo nomes de diretórios e arquivos de iso-8859-1 para utf8.
Pode ser necessário rodar mais de uma vez, mas funciona que é uma beleza.
Vou postar também o link de outro script que muda o conteúdo de iso-8859-1 para utf8 em arquivos de texto, html e xml. Afinal, mudar somente o nome dos arquivos não é suficiente.
[]s
Daniel Ribeiro
http://danielbr-news.blogspot.com
http://danielbr-dev.blogspot.com
#!/bin/bash CONVERTER (){ for i in * do #novonome=$(echo "$i" | iconv -f iso-8859-1 -t utf-8 | tr ' ' '_' ) | \ #tr '[:upper:]' '[:lower:]') resultado_isutf8=$( isutf8 "$i" | grep false ) if [ "$resultado_isutf8" == "" ] then continue fi novonome=$(echo "$i" | iconv -f iso-8859-1 -t utf-8 ) if [ "$novonome" != "$i" ] ; then echo " Renomeando \"$i\" para \"$novonome\"... em $( pwd )" mv "$i" "$novonome" fi done } PROCESSA_DIR(){ diretorios=$( find ./ -type d ) #ROOT=$( pwd | sed 's/\ /\\\ /g' ) ROOT=$( pwd ) SAVEIFS=$IFS IFS=$(echo -en "\n\b") for d in $diretorios do dir=$d resultado_isutf8=$( isutf8 "$d" | grep false ) if [ "$resultado_isutf8" != "" ] then count=0 SAVEIFS2=$IFS IFS=$(echo -en "/") for t in $d do #echo "Parte: $t" novonome=$t resultado_isutf8=$( isutf8 "$t" | grep false ) if [ "$resultado_isutf8" != "" ] then novonome=$(echo "$t" | iconv -f iso-8859-1 -t utf-8 ) fi nomes[$count]=$novonome count=`expr $count + 1` done IFS=$SAVEIFS2 novonome_final="" count2=0 while [ $count2 -lt $count ] do novonome_final=$( echo "$novonome_final""${nomes[count2]}""/" ) count2=`expr $count2 + 1` done dir=$novonome_final fi #echo "--- Process $dir ---" #dir=$( echo "$d" | sed 's/\ /\\\ /g' ) cd "$dir" CONVERTER #echo "------------------" cd "$ROOT" done IFS=$SAVEIFS } PROCESSA_DIR
cambada_oneko - gatinhos coloridos perseguindo o ponteiro do mouse
Configurando acesso ao MS SQL Server nativo e via ODBC no Debian GNU/Linux
Pingmon1.0 - Ping Timeout Monitor
verificar acessos indevidos automaticamente squid
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Problema com nome composto e organização na tela do yad (0)
Formatando cartão de memoria que nao formata[AJUDA] (18)
Primeira vez utilizando Linux Ubuntu 22.04 e já tenho problemas… (5)
warsaw parou de funcionar após atualização do sistema (solução) (1)