Ah galera tem uma coisa se eu usar o script abaixo:
for i in *\ *.xml; do
n=`echo "$i" | tr ' ' _`
mv "$i" "$n"
done
Mesmo que não exista nenhum arquivo com espaço no nome ele entra no
loop e tenta fazer o mv, gerando assim uma mensagem de erro.
Como fazer para que entre no loop, somente se existir algum arquivo
com espaço no nome.
Att.
leonardo Vieira
--- Em address@hidden, "Leonardo Vieira"
<leonardoflavieira@y...> escreveu
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.
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos