Obrigado ao Julio e demais amigos pela ajuda fornecida. Vou tentar esse código, mas estou recioso...
Explico: Creio que o problema está em não conseguir gravar no sistema de arquivo. E não adianta chmod 777 -R porque isso eu já tentei. É uma partição NTFS e quando instalei o Debian 4, ela se transformou em HTFS e aí começou meu drama. No Windows a letra D: da partição até aparece, mas não vejo os dados. No Linux eu consigo montar, ler e até copiar, mas esses arquivos com acentuações (que aparecem para mim com um "?") o sistema não "entende". Por isso estou tentando mudar seus nomes. Mas o "?" não significa que é uma interrogação: pode ser um cedilha ou um til ou qualquer outro símbolo destes. Tanto é que no bash, ao tentar copiar, aparece contra-barra seguida de um número ao invés da interrogação. Percebi que os números são diferentes, ou seja, são outros símbolos. No Nautilus , aparece um losango preto com uma interrogação dentro. Creio que o caminho será reconfigurar o sistema de arquivo NTFS. Assim que conseguir (ou não) informo a solução. Abraços Victor Vargas ----- Mensagem original ---- De: "[email protected]" <[email protected]> Para: [email protected] Enviadas: Sábado, 16 de Agosto de 2008 9:59:36 Assunto: [shell-script] Resumo 3189 Re: Alterando nomes de arquivos com caracteres especiais Enviado por: "Julio C. Neves" [EMAIL PROTECTED] julioneves99 Sáb, 16 de Ago de 2008 2:37 am Fala Victor, se vc está usando bash, troque o for do seu programa pelo seguinte: for ComAcen in `find . -name '*\?'` do SemAcen=`echo $ComAcen | tr "?" x` # listando os 2 em ordem cronologica (-t) e # pegando o + novo (head -1). Se o que acabamos de tirar # os acentos for mais novo, será renomeado. mv -f $ComAcen $SemAcen done Os comentários acima não entendi bulhufas... Outra forma interessante de fazer é: ArqsVeio=$(find . -name '*\?') ArqsNovo=$(tr "?" x <<< "$ArqsVeio" paste -d' ' <(echo "$ArqsVeio") <("$ArqsNovo" ) | xargs -L1 mv Assim ArqsVeio terá somente uma pilha dos arquivo com ?. O tr cria em ArqsNovo outra pilha sem acento. O paste monta uma pilha com os pares separados por branco. o xargs pega cada um deste pares e põe à frente do rm. Para pesquisar: *paste:* http://twiki. softwarelivre. org/TWikiBar/ TWikiBarPapo003# Se_tem_cut_ tem_paste *substituição de processos <(...) :* http://twiki. softwarelivre. org/TWikiBar/ TWikiBarPapo011# Substitui_ o_de_processos *xargs: *http://twiki. softwarelivre. org/TWikiBar/ TWikiBarBirinait e Tudo escrito em Português e cheio de exemplos curtos e fáceis. -- Abraços, Julio *Em setembro estarei dando um treinamento Shell em Brasília (em 2 fins de semana). Mais informações: www.tecnologiabr. com.br Tel: (61) 3354-3162* 2008/8/14 aiok_gui <[EMAIL PROTECTED] com.br> > Olá amigos, > > Meu nome é Victor e usei muito o Linux de 97 a 2001. Depois dei uma > parada para trabalhar com Win (coisas do ofício). > > Bem, atualmente estamos incubados na Fundação Softville, em Joinville-SC. > > Estou com um problema e após procurar e estudar bastante e não > conseguir resolver meu problema, fui procurar nos fóruns para ver se > encontrava uma solução. > > Achei um post do Julio Cezar Neves para renomear um grupo de arquivos > com caracteres especiais (acentuados) . > > Vou relatar meu problema e gostaria que, se possível, vocês nos > ajudassem: Tenho uma máquina com Windows XP (hda1 - C: e hda2 - D:). > Ao instalar o Debian 4, eu provavelmente alterei o hda2 para hidden. > Bem, consegui com o gpart/cfdisk recuperar a partição. > Ao entrar no Windows, lá está o D:, mas vazio. Retornando no Linux, > montei como root a partição, consegui ler os arquivos, mas não consigo > gravar na partição, mesmo mudando as permissões para total (777). > > Bem, uma solução para recuperar os arquivos, a partir do Linux, seria > gravar os dados do D: (hda2) para um diretório qualquer (p.e. > /home/d), mas como os arquivos acentuados aparecem com o caracter "?", > que é um coringa, não consegui copiar/mover. > > O script do Julio que encontrei é o script abaixo adaptado por mim: > > #!/bin/bash > # > # Testando se vc passou o diretorio como parametro > # default = diretorio corrente. > # > if [ $# -eq 1 ] > then > Dir=$1 > else > Dir="." > fi > cd $Dir > for ComAcen in `ls -R | grep '[\?]'` > do > SemAcen=`echo $ComAcen | tr "[\?]" "[x]"` > > # listando os 2 em ordem cronologica (-t) e > # pegando o + novo (head -1). Se o que acabamos de tirar > # os acentos for mais novo, será renomeado. > mv -f $ComAcen $SemAcen > done > > ------------ - > > Como não terei arquivos com nomes repetidos, o if que fazia este teste > dentro do for foi retirado. > > Fui pra linha de comando, gravei este arquivo em /mnt e mudei > a permissão para execução. Mas ao executar, ele não faz o que > gostaria, ou seja, mudar o "?" para "x". > Já tentei mudar de "/?" para "?", mas também não funcionou. > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
