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.664 ]
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
Gerenciador de arquivos youtube-dl
GETPLAMIGA - Baixe a Palavra Amiga do Bispo Macedo
zwtsc - cliente gráfico para Terminal Service
Script para excluir tudo de um local menos uma pasta ou arquivo selecionado
Configurando endereço de rede - Slackware, Debian, CentOS/RHEL
Kernel 6.18 em foco, betas fervilhando e avanços em IA no Linux
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Primeiras impressões do Debian 13 (21)
systemd-resol... precisa ser reiniciado periodicamente (3)
intervenção politica pode interver no Fedora Linux [RESOLVIDO] (8)
Fedora não reconhece James Donkey 102 Wireless Gaming Mouse (0)