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.764 ]
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
Identificar arquivos criados ou removidos no sistema.
Hora certa - Observatório Nacional
Backup, gerando no final uma imagem .iso dos arquivos !!
Baixa, instala, configura e executa o NO-IP.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (4)
Conky, alerta de temperatura alta (11)









