shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] FIND + MV


From: Julio C. Neves
Subject: Re: [shell-script] FIND + MV
Date: Fri, 24 Dec 2010 10:40:22 -0200

Suponha que que o find detecte 3 arquivos que obedeçam estas características
e eles sejam o A, o B e o C. Esta construção do exec criaria uma linha
assim:

mv A dir ; mv B dir ; mv C dir

e o bash executaria essa linha sem problema, porém se o find voltar tb um
arquivo chamado 'Nome Ruim', a linha que montará será:

mv A dir ; mv B dir ; mv C dir ; mv Nome Ruim dir

e neste caso o cmd mv entenderá que é para mover o arquivo Nome e o arquivo
Ruim para o diretório dir, ocasionando o erro.

Para evitar esse tipo de problema, prefiro fazer a construção da seguinte
forma:

find /diretorio/in -type f -name 'ARQUIVO_*.txt' | xargs -i mv '{}'
/diretorio/out

Por outro lado Rogério, o ponto colocado é no mínimo estranho. Ele pode não
ser errado, caso o diretório corrente seja /diretorio/out. Para qq outro
diretório corrente, esta construção está errada "s i m". Além do mais vc bem
sabe que um é um caminho absoluto (/diretorio/out) e o outro é um caminho
relativo (.). A mistura dos dois, como no caso, costuma ser explosiva.

Feliz Natal a todos e muito 'suShellso' em 2011. Em Abr/2011 estaremos
fazendo o primeiro grande evento de Sw Livre no RJ e precisaremos que vcs
nos ajudem na divulgação. Será o Hack'n Rio... ;)

Abraços,
Julio




Em 24 de dezembro de 2010 09:01, Roberto Alves <address@hidden>escreveu:

> Bem, esse comando é executado no Linux, AIX, HPUX, Solaris ou onde?
>
> Se for no AIX eu já vi umas coisas estranhas assim. Se por exemplo, eu
> colocar o desvio do erro no final do comando ou se, como disse o
> Rogerio, houver arquivos com espaços e/ou caracteres acentuados ou
> algo do tipo.
>
> Ah, eu acho que o ponto não estaria errado. Eu costumo sempre fazer um
> cp, mv ou sei lá o que com o ponto no final também.
>
> Um lindo Natal para todos e para suas famílias.
> Roberto Alves
>
>
>
>
> Em 24 de dezembro de 2010 01:56, Rogerio Batista
> <address@hidden> escreveu:
> >
> >
> >
> > Também não vi nada estranho assim como o Júlio, o ponto o qual ele se
> > referiu apesar de não ser necessário não é errado,
> > poderia talvez ser o retorno do comando, caso o comando não retorne nada
> ou
> > algo inválido como arquivos com espaços ou caracteres especiais no nome
> >
> > Rogério
> >
> > Em 23 de dezembro de 2010 22:00, Julio C. Neves <address@hidden
> >escreveu:
> >
> > > 1 - Se vc tirar o 2> /dev/null, qual erro ele apresenta?
> > > 2 - A única coisa estranha que vi no seu cmd é que vc colocou:
> > > '/diretorio/out/.' e esse ponto aí no final não existe.
> > >
> > > Abcs,
> > > Julio
> > >
> > >
> > > Em 22 de dezembro de 2010 20:55, fsilva6 <address@hidden>
> escreveu:
> > >
> > > >
> > > >
> > > > Senhores,
> > > > estou executando o comando abaixo para localizar um arquivo e
> > > movimenta-lo
> > > > para outro local, o procedimento é realizado com sucesso só que o
> código
> > > de
> > > > retorno que recebo é 1. Existe alguma forma do comando abaixo sair
> com
> > > > código de retorno 0.
> > > >
> > > > find /diretório/in -type f -name 'ARQUIVO_*.txt' -exec mv {}
> > > > /diretório/out/. \; 2>/dev/null
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > ----------------------------------------------------------
> > > 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
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]