[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]