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.781 ]
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
Quebra-Galho-Faz-tudo-Configurator
Script de compilação automatica do GCC
Alternador de wallpaper para GNOME
Comandos para Avira AntiVir (ATUALIZADO!)
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









