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.796 ]
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
Gerar a linha do Depends prontinha para o "control" para gerar pacotes DEB
VMware - Linux HotAdd CPU/Memória
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









