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.698 ]
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
xpock-dl: baixe vídeos do xpock.com.br
LAMP/Tomcat - Acesso simplificado a ferramentas do console
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (2)
O programa assinador digital (3)
Warcraft II Remastered no Linux? (2)









