Alisson,

O mv não tem que aceitar coisa alguma. O coringa * (que veio
originalmente da notação estrela do Multics, antes do próprio Unix) é
expandido pelo shell e entregue ao programa na lista de argumentos.

ex:

echo arq*

o shell interpreta essa linha como
comando: echo
argumentos: *  -> OPA! * é uma máscara que representa TODOS os
arquivos e diretórios no diretorio corrente que cujo nome não começe
por . (ponto -- como no caso do .bashrc e do diretorio ..), LOGO eu
vou substituir esse asterisco por essas coisas.

--- substituição --
comando: echo
argumentos: arq1, arq1, ...arqN

ai o mv executa essa linha de comandos.

Repetindo: o mv, o echo, o ls, o wget e qq outro programa nem sabe que
tem um * -- a menos q vc escapasse-o

ex:

echo \*
echo '*'

ai o shell entende que é o caracter *

O que o MV entende: a opção --

se vc tiver um arquivo chamado '-i' e tentar mover ou remover, vai dar
problema, pois o - é um sinal de argumento de linha de comando lido
pelo programa. Para passar um -i que represente 'isso é o nome de um
arquivo e não um parâmetro' vc deve usar a opção -- e informar depois
(isso diz pro getopts para parar de procurar parametros).

ex:

mv -i arquivo.txt  (vai dar erro)

mv -- -i arquivo.txt (perfeito).

Poste a exata linha de erro, ok?

Att

Tiago



2008/2/8 alisson3at110 <[EMAIL PROTECTED]>:
>
>
> Ola pessoal
>  Estou com um problema em um Script, quero mover para um diretorio
>  varios arquivos começando com o mesmo nome, o usuario informa o nome
>  inicial dos arquivos e o script envia
>  mv arq* destino
>
>  mas o problema que o mv não aceita o *, qual o outro comando que posso
>  executar ??
>
>  Alisson
>
>  



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"

Responder a