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

Re: rm e ls com lista de argumentos muito longa



 Meu:

 Pior que a gente teve uma conversa sobre coisas desse tipo há pouco tempo.

 se vc der uma olhada na manpage do find, vai descobrir que o comando
find utilizando com a opção -exec, executa um comando passado pela
linha de comando para executar para cada entrada do filesystem
selecionada.

 No caso da linha de comando que vc teve dúvida o comando executado é
o rm -f, e o {} representa a entrada do filesystem encontrada, de
acordo com a sintaxe do find.

 Pra obter mais informações sobre um comando utilize as manpages. A
sintaxe é a seguinte:

 $ man <comando>

 Agora sobre conectar a saída de um programa na entrada de outro.

 Isso é uma funcionalidade básica de qq unix, e eu acho um pouco
chatinha de ficar explicando aqui. Eu recomendo que vc leia o Guia
Foca Linux para iniciantes:
 http://focalinux.cipsga.org.br/

 Lá vc vai encontrar resposta para muitas de suas perguntas.

 Fabio.
 

On 7/27/05, unholycurse <unholycurse@gmail.com> wrote:
> kras, me expliquem uma coisa que nunca entendo:
> Como vcs listam arquivos com um comando e usam de parametros em outro? como no:
> find -name \*.jpg -exec rm -f {} \;
> 
> o que quer dizer o rm -f {} \    ????
> 
> flw
> 
> Em 26/07/05, Leandro Ferreira<androle@androle.pro.br> escreveu:
> > No dia 26/07/2005 às 21:18,
> > Marcelo Beckmann <marcelo@beckmann.trix.net> escreveu:
> >
> > > Leandro Ferreira wrote:
> > > >Olá pessoal
> > > >
> > > >Tenho um diretório com cerca de 180.000 arquivos jpg que quero apagar.
> > > >
> > > >Tentei um rm -f * e deu erro:
> > > >/bin/rm: lista de argumentos muito longa.
> > > >
> > > >Tentei ls -d *.jpg| rm -f $(xargs), e deu a mesma coisa:
> > > >/bin/ls: lista de argumentos muito longa.
> > >
> > > Eu ia justamente sugerir xargs, entretanto não conhecia essa construção
> > > que você usou com ele.
> > >
> > > Experimente algo como:
> > > find . -type f -name \*.jpg -maxdepth 1 | xargs rm -f
> > >
> > > deve funcionar
> > >
> > > o xargs tem ainda o parâmetro -n <quantidade> para limitar a quantidade
> > > de argumentos que será passada para o comando.
> > >
> >
> > Marcelo
> >
> > Já não tinha os 180.000 arquivos para testar, mas o programinha em
> > python ficou tão lento (não sou expert em python ou programação) que ainda tinha uns 600 MB de arquivos. Ai testei
> > com o find e funcionou. Pena que já não tinha todos para testar.
> >
> > Fiz o seguinte:
> >
> > find -name \*.jpg -exec rm -f {} \;
> >
> > Foi bem mais rápido que a solução em python.
> >
> > Tinha me esquecido completamente do find.
> > Valeu a dica!
> >
> > Um abraço a todos
> >
> > Leandro
> >
> > --
> >  (@_   Leandro Padilha Ferreira - http://androle.pro.br
> >  //\
> >  V_/_  Linux user #237.744 - GPG ID: A7FB969E
> >
> > ---------------------------------------------------------------
> >        O homem vale tanto quanto o valor que da a si proprio.
> >                -- Francois Rabelais
> >
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.1 (GNU/Linux)
> >
> > iD8DBQFC5tfgd8iw8hWoWeoRAq8qAJ0YxpGucGeunWo9FVigZ8wDF20PAwCdEJA/
> > rVZa/Vb65Bs7ZinGSWNXwNs=
> > =o+dS
> > -----END PGP SIGNATURE-----
> >
> >
> >
> 
> 
> --
> -----------------
> O linux eh um sistema operacional amigável, ele so eh seletivo com os
> seus amigos! =P
> UIN: 1992397
> MSN: dcabballero@hotmail.com
> e-mAiL: unholycurse@gmail.com
> hP: http://info.campus2.br/~mdapaz
> 
>



Reply to: