basename é um cara chato...

$  find . -iname *.txt -exec sh -c 'nome={}; mv $nome dir02/x${nome/.*\/}' \;

Isso resolve seu problema...


Flavio do Carmo Junior aka blk1d

On 6/23/06, lordegato <[EMAIL PROTECTED]> wrote:
> Olá Ivan.
>
> Desculpe, mas não entendi sua mensagem, quando vc diz "procure alguns
> exemplos mais complexos de uso do find, para entender o comando."
>
> Além disso, o fragmento de linha que vc enviou não apresenta nenhuma
> diferença. Vou reapresentar o problema de forma mais clara:
>
> [EMAIL PROTECTED]:~/lixo$ tree
> .
> |-- dir01
> |   `-- teste.txt
> `-- dir02
>
> Note que o arquivo ./dir01/teste.txt deve ser copiado para ./dir02.
> Vou usar um find para isto:
>
> [EMAIL PROTECTED]:~/lixo$ find dir01/ -iname "*.txt" -exec mv {}
> dir02/x$(basename {}) ";"
> mv: impossível mover `dir01/teste.txt' para `dir02/xdir01/teste.txt':
> No such file or directory
>
> Não houve nenhum problema na sintaxe do comando find, pois de acordo
> com o manual, "Both  of  these constructions might need to be escaped
> (with a `\') or quoted to protect them from expansion by the shell..."
>
> Assim, o argumento "ponto e vírgula" precisa ser protegido do Shell
> Expansion, o que se faz tanto com um contra-barra ou estando entre aspas.
>
> Mas veja que problema está no "x" que antecede o $(). Eu quero mover
> todos os arqs "*.txt" para ./dir02 , renomeando-os para "x*.txt".
> entretanto, o comando "basename" não funcionou como deveria, pelo que
> se nota nas msgs de erro:
>
> `dir02/xdir01/teste.txt'
>
> Por isso, pergunto:
>
> Como poderia resolver este problema ?
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> 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: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a