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.654 ]
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
Reiniciar um serviço de acordo com o consumo de memória.
Conectar rede WIFI pelo terminal
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Como instalar o Telegram Desktop no Ubuntu 24.04
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
Primeiras impressões do Debian 13 (8)
como resolver o problema de som do linux mint mate (4)