shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Alterando nomes de arquivos com caracteres especiais


From: Aiok Gui
Subject: Re: Alterando nomes de arquivos com caracteres especiais
Date: Tue, 19 Aug 2008 05:42:07 -0700 (PDT)

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: "address@hidden" <address@hidden>
Para: address@hidden
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" address@hidden   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 <aiok_gui@yahoo. 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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]