[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: script que substitui espaços
From: |
Leonardo Vieira |
Subject: |
Re: script que substitui espaços |
Date: |
Thu, 03 Mar 2005 13:53:25 -0000 |
User-agent: |
eGroups-EW/0.82 |
Valew galera, realmente era para renomear somente os arquivos de um
determinado diretório e não de toda a sua raiz.
--- Em address@hidden, Gustavo Chaves <gustavo@c...>
escreveu
> >>>>> On Wed, 2 Mar 2005 20:04:39 -0300, Andreyev Dias de Melo
<andreyevbr@g...> said:
>
> > Como sempre, TIMTOWTDI:
> > $ find $diretorio -type f -name \*.old | while read LINE ; do mv
> > "${LINE}" "${LINE//\ /_}"; done
>
> Um problema é que o mv provavelmente não está sendo chamado no mesmo
> $diretorio. Mais correto seria:
>
> mv "$diretorio/${LINE}" "$diretorio/${LINE//\ /_}"
>
> Outro detalhe é que o find vai buscar arquivos em subdiretórios. A
> especificação original do problema não era clara, mas eu entendi que
> seria apenas para os arquivos do mesmo diretório. Dá pra resolver
> isso com opções -maxdepth (ser for o find do GNU) ou -prune.
>
> Na minha versão eu compliquei o glob usando "*\ *.old" ao invés de
> "*.old" pra só chamar o mv para os arquivos que contêm espaços. É
> claro que chamando-o para os que não contém não muda o nome, mas
pode
> criar muitos processos desnecessariamente.
>
> Gustavo.