Ocorre o erro porque voc? tem que incluir um escape antes do espa?o.
Eu consegui resolver o problema, mas um pouquinho diferente de como vc
estava tentando fazer. Mas com o resultado desejado.


#!/bin/sh

# Cria um arquivo com a listagem do diret?rio escolhido
/bin/ls /tmp/teste > /tmp/apaga.$$

(
  while read dir; do
  
    novo_dir=`echo $dir|tr '[:upper:]' '[:lower:]'`
    if [ "$dir" != "$novo_dir" ]; then

      # faz um escape dos espa?os
      dir=${dir// /\ }           
      novo_dir=${novo_dir// /\ }

      mv "$dir" "$novo_dir"
    fi
    
  done
) < /tmp/apaga.$$

rm /tmp/apaga.$$



--
Gutemberg 


On Tue, Mar 11, 2003 at 01:00:33PM -0300, Wilson Dias Goi wrote:
> Tentei fazer uma script que alterasse um caracter para outro nos arquivos,
> atraves da renomeacao de arquivos.
> A maioria dos arquivos tem espacos em branco.
> Tentei de varias formas mas o mv sempre da a mensagem : "mv: ao mover
> multiplos arquivos o ?ltimo argumento deve ser um diretorio"
> Por exemplo, aqui tentei converter caracteres maiusculos em minusculos:
> 
> for x in /bin/ls $dir; do
>          y=_cho $x | tr '[:upper:]' '[:lower:]'
>           if [ $x != $y]; then
>             mv $x $y
>           fi
>       done
> 
> Ja consultei varias documentacoes e nada encontrei sobre este problema.
> Alguem tem uma dica ?
> 
> Wilson
> 
> 
> -- 
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
> 

Responder a