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

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

Re: [shell-script] Busca em ShellScript


From: Robson Alexandre
Subject: Re: [shell-script] Busca em ShellScript
Date: Wed, 6 Feb 2013 07:44:52 -0200

Bom dia a todos,
Acho muito interessante esse assunto no sentido sempre de otimizar
recursos, mas fiquei com uma dúvida q sempre qdo faço meus scripts tenho q
buscar alternativas q acredito serem mais lentas segundo nossa discussão.
Por exemplo,
Preciso criar um arquivo em um diretório com permissões apenas para admin
Então faço
echo "conteúdo" | sudo tee arquivo_a_criar
Pois
echo "conteúdo" > arquivo_a_criar
Não funcionaria.

Existe alguma forma como dito pelo Júlio no último email de utilizar apenas
o shell?

Atenciosamente
Robson Alexandre

Enviado de Android Samsung Mobile
Em 05/02/2013 19:26, "Julio C. Neves" <address@hidden> escreveu:

> **
>
>
> Acho bacana fazer essas comparações pq todos usam do modo mais lento e
> desconhecem os outros 2, que são bem mais rápidos.
>
> Experimente chegar numa sala com profissionais de TI, todos usuários Linus,
> e pergunte como se cria um arquivo vazio em shell. Se houverem 100 pessoas
> na sal (nenhuma dessa lista ;) ouviremos pelo menos 90 dizendo que é com
> touch (umas 5 dizem que é com vi ;).
>
> Aí eu mostro:
> $ time for ((i=1; i<200; i++)); { touch lixo; }
>
> real 0m0.898s
> user 0m0.088s
> sys 0m0.168s
> $ time for ((i=1; i<200; i++)); { > lixo; }
>
> real 0m0.044s
> user 0m0.020s
> sys 0m0.004s
>
> É impressionante como os profissionais do Linux ignoram uma ferramenta
> simples e poderosa como o shell!
>
> Abcs,
> Julio
> @juliobash
>
> Em 5 de fevereiro de 2013 19:02, Alfredo Casanova
> address@hidden>escreveu:
>
> > Realmente, agora a diferença foi notável
> > dei sempre um du -s antes do comando só pra checar se o volume estava
> muito
> > maior
> >
> > $ du -s
> > 1474240 .
> > $ time find . -type f -exec grep -i "plink" {} > /dev/null \;
> >
> > real 4m6.693s
> > user 2m26.301s
> > sys 0m22.189s
> >
> > $ du -s
> > 1474244 .
> > $ time find . -type f | xargs grep -i "plink" > /dev/null
> >
> > real 2m30.238s
> > user 2m17.161s
> > sys 0m3.424s
> >
> > $ du -s
> > 1474248 .
> > $ time find . -type f -exec grep -i "plink" {} > /dev/null \+
> >
> > real 2m20.218s
> > user 2m17.629s
> > sys 0m2.400s
> >
> >
> >
> > 2013/2/5 Alfredo Casanova address@hidden>
> >
> > > Bom, o número de linhas buscadas pode ter se alterado um pouco, mas de
> > > fato não verifiquei isso. O número de arquivos era o mesmo em todos.
> > > Amanhã faço o teste isolando o ambiente
> > > Em 04/02/2013 17:36, "Julio C. Neves" address@hidden> escreveu:
> > >
> > > **
> > >>
> > >>
> > >> Deve ter ocorrido algo no momento que vc executou, pq a ordem
> crescente
> > de
> > >> tempo é:
> > >> » exec ... {} \+ --- esse é o mais rápido;
> > >> » xargs --- Um pouquinho mais lento (o tempo do fork + o tempo da
> carga
> > do
> > >> xargs);
> > >> » exec ... {} \; --- o mais usado e mais lento.
> > >>
> > >> Abcs,
> > >> Julio
> > >> @juliobash
> > >>
> > >> Em 4 de fevereiro de 2013 17:00, Alfredo Casanova
> > >> address@hidden>escreveu:
> > >>
> > >> > $ time find . -type f -exec grep -i "plink" {} > /dev/null \;
> > >> >
> > >> > real 4m19.462s
> > >> > user 2m24.817s
> > >> > sys 0m21.993s
> > >> >
> > >> > $ time find . -type f | xargs grep -i "string" > /dev/null
> > >> >
> > >> > real 3m32.933s
> > >> > user 2m17.929s
> > >> > sys 0m7.628s
> > >> >
> > >> > $ time find . -type f -exec grep -i "string" {} > /dev/null \+
> > >> >
> > >> > real 3m46.720s
> > >> > user 2m18.237s
> > >> > sys 0m7.880s
> > >> >
> > >> >
> > >> >
> > >> > acabou que o xargs se saiu melhor que o último
> > >> >
> > >> >
> > >> > 2013/2/2 Julio C. Neves address@hidden>
> > >> >
> > >> > > **
> > >> > >
> > >> > >
> > >> > > Armando,
> > >> > > vou te pedir um favor: rode as linhas a seguir e publique o
> > resultado
> > >> > nessa
> > >> > > lista para que a rapaziada veja que o modo mais tradicional e mais
> > >> > usado, é
> > >> > > o mais lento.
> > >> > >
> > >> > > Modo tradicional:
> > >> > > $ time find . -type f -exec grep -i "string" {} > /dev/null \;
> > >> > >
> > >> > > Ligeiramente "envenenado":
> > >> > > $ time find . -type f | xargs grep -i "string" > /dev/null
> > >> > >
> > >> > > Muito "envenenado":
> > >> > > $ time find . -type f -exec grep -i "string" {} > /dev/null \+
> > >> > >
> > >> > > Mandei as saídas para /dev/null pq todas as saídas seriam iguais e
> > >> > > igualmente corretas, mas o que nos interessa no caso é somente os
> > >> tempos.
> > >> > >
> > >> > > - Dever de casa - ;)
> > >> > > Se alguém além do Armando (que iniciou a thread) tiver um
> diretório
> > >> com
> > >> > > muitos arquivos de texto que possa fazer essa medição, peço que tb
> > >> poste
> > >> > os
> > >> > > resultados na lista.
> > >> > >
> > >> > > Abcs,
> > >> > > Julio
> > >> > > @juliobash
> > >> > >
> > >> > > Em 1 de fevereiro de 2013 20:13, Rafael Henrique da Silva Correia
> <
> > >> > > address@hidden> escreveu:
> > >> > >
> > >> > >
> > >> > > > Acrescentando meus 0,02 centavos (li alternativas ótimas nas
> > >> respostas
> > >> > do
> > >> > > > pessoal).... eu geralmente uso algo assim:
> > >> > > >
> > >> > > > $ find
> > >> > > -type f -exec grep -i "string" \;
> > >> > > >
> > >> > > > Espero que vc consiga achar o find perfeito para seu problema
> ...
> > ;)
> > >> > > >
> > >> > > > Até+
> > >> > > >
> > >> > > > Em 1 de fevereiro de 2013 15:53, Armando Barsotini Neto <
> > >> > > > address@hidden> escreveu:
> > >> > > >
> > >> > > > > **
> > >> > > > >
> > >> > > > >
> > >> > > > > Boa Tarde!
> > >> > > > >
> > >> > > > > Pessoal, estou utilzando o comando abaixo para pesquisar uma
> > >> palavra
> > >> > > > dentro
> > >> > > > > de uma arquivo utilizando o "grep -i" (não sensitivo):
> > >> > > > >
> > >> > > > > find . | xargs grep -i "string"
> > >> > > > >
> > >> > > > > Porém, ele faz a varredura no servidor inteiro e isso demora
> > >> muito...
> > >> > > > teria
> > >> > > > > como limitar essa busca em um determinado diretório e seus
> > >> > > subdiretórios?
> > >> > > > > Agradeço!
> > >> > > > >
> > >> > > > > Att,
> > >> > > > >
> > >> > > > > Armando Barsotini Neto
> > >> > > > >
> > >> > > > > Linux User # 503670
> > >> > > > > Ubuntu User # 30175
> > >> > > > >
> > >> > > > > [As partes desta mensagem que não continham texto foram
> > removidas]
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > >
> > >> > > >
> > >> > > >
> > >> > > > --
> > >> > > > Rafael Henrique da Silva Correia
> > >> > > > http://abraseucodigo.com.br
> > >> > > >
> > >> > > > Bacharel em Ciência da Computação
> > >> > > > Administrador de Sistemas Linux
> > >> > > > Certificado pela LPIC - 101 http://www.lpi.org/>
> > >> > > > Certificado Novell (CLA)
> > >> http://www.novell.com/training/certinfo/cla/>
> > >> > > >
> > >> > > >
> > >> > > > [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]
> > >> > >
> > >> > >
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > []'s
> > >> > Alfredo Casanova
> > >> > Linux User #228230
> > >> > msn: address@hidden
> > >> > tel: +55 61 9655 9619
> > >> >
> > >> >
> > >> > [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]
> > >>
> > >>
> > >>
> > >
> >
> >
> > --
> > []'s
> > Alfredo Casanova
> > Linux User #228230
> > msn: address@hidden
> > tel: +55 61 9655 9619
> >
> >
> > [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]
>
>  
>


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



reply via email to

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