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

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

Re: [shell-script] Re: find + du


From: Flavio Junior
Subject: Re: [shell-script] Re: find + du
Date: Mon, 23 Apr 2007 12:03:42 -0300

Da uma olhada nesse TIPO de solucao:
$ find . -type f -mtime -100 | xargs du -s | awk 'BEGIN{soma=0}; {soma+=$1}
; END{print soma"K"}'

No caso voce teria a saida em Kbytes, ou :


junior@babalu:~/wiki$ find . -type f -mtime -100 | xargs du -b | awk
'BEGIN{soma=0}; {soma+=$1} ; END{print soma/(1024*1024)"M"}'
6,83556M
junior@babalu:~/wiki$ find . -type f -mtime -100 | xargs du -b | awk
'BEGIN{soma=0}; {soma+=$1} ; END{print soma/1024"K"}' 6999,61K
junior@babalu:~/wiki$

Nao sei se ajuda..

Flavio do Carmo Junior


On 4/23/07, Pedro Drimel <address@hidden> wrote:
>
>   Opaaaa... tentei mas não dei conta resolvi pedir ajuda aqui hehe...
>
> Bill, eu não to ficando loco cara, juro pra você:
>
> pedro@servidor:~ $ find teste/ -type f -mtime -200 | xargs du -hc
>
> 593M total
>
> pedro@servidor:~ $ find teste/ -type f -mtime -300 | xargs du -hc
>
> 368M total
>
> Vai entender o que ta acontecendo com esse find :/
>
> On 23/04/07, Flavio Junior <address@hidden <billpp%40gmail.com>> wrote:
> >
> > Uia.. Voce por aqui pedrim ?
> > hahah
> >
> > Precisava falar contigo depois em pvt, sobre pj...
> >
> > Seguinte, isso parece funcionar corretamente:
> > $ find . -type f -mtime -200 | xargs du -hc
> >
> > Exemplos
> >
> > junior@babalu:~/wiki$ find . -type f -mtime -10
> > ./rel-bacula.pdf
> > junior@babalu:~/wiki$ find . -type f -mtime -100
> > ./squid-webmin.txt
> > ./smartsieve.txt
> > ./raidtuto.pdf
> > ./bacula.pdf
> > ./SmartSieveUser.txt
> > ./manual_bacula_restore.pdf
> > ./manual-instalacao-windows-client.pdf
> > ./id_dsa
> > ./.sylpheed_cache
> > ./.sylpheed_mark
> > ./Mavil.png
> > ./Mavil.dia~
> > ./Mavil.dia
> > ./rel-bacula.pdf
> > junior@babalu:~/wiki$ find . -type f -mtime -10 | xargs du -hc
> > 4,1M ./rel-bacula.pdf
> > 4,1M total
> > junior@babalu:~/wiki$ find . -type f -mtime -100 | xargs du -hc
> > 8,0K ./squid-webmin.txt
> > 4,0K ./smartsieve.txt
> > 216K ./raidtuto.pdf
> > 856K ./bacula.pdf
> > 4,0K ./SmartSieveUser.txt
> > 1,5M ./manual_bacula_restore.pdf
> > 220K ./manual-instalacao-windows-client.pdf
> > 4,0K ./id_dsa
> > 4,0K ./.sylpheed_cache
> > 4,0K ./.sylpheed_mark
> > 40K ./Mavil.png
> > 4,0K ./Mavil.dia~
> > 4,0K ./Mavil.dia
> > 4,1M ./rel-bacula.pdf
> > 6,9M total
> > junior@babalu:~/wiki$
> >
> > Qualquer duvida diz ai..
> > Abraço guri, boa sorte ai no trampo novo..
> >
> > Flavio do Carmo Junior
> >
> > On 4/23/07, Pedro Drimel 
> > <address@hidden<pedrodrimel%40gmail.com><pedrodrimel%
> 40gmail.com>>
> > wrote:
> > >
> > > Fica o mesmo resultado para os dois -200 -300 acontece que não tem o
> que
> > > jogar para o pipe e ele acaba executando um du -ch em teste/
> > >
> > > On 21/04/07, nilton_p_8 <address@hidden<nilton_p_8%40yahoo.com.br>
> <nilton_p_8%40yahoo.com.br>
> > <nilton_p_8%40yahoo.com.br>>
> > > wrote:
> > > >
> > > > --- Em address@hidden<shell-script%40yahoogrupos.com.br>
> <shell-script%40yahoogrupos.com.br>
> > <shell-script%40yahoogrupos.com.br>
> > > <shell-script%40yahoogrupos.com.br>,
> > > > "Pedro Drimel"
> > > > <pedrodrimel@...> escreveu
> > > > Pedro tenta usar somente o pipe sem o xargs. Tipo:
> > > > $ find teste/ -mtime -200 | du -ch
> > > > .....
> > > > XXXX total
> > > > Posta ai se der certo....
> > > > é a minha primeira dica aqui na lista....
> > > > >
> > > > > Parece que não deu certo com o xargs não... como pode -200 ter
> mais
> > > que
> > > > > -300...
> > > > >
> > > > > pedro@servidor:~ $ find teste/ -mtime -200 | xargs du -ch
> > > > > 452M total
> > > > > pedro@servidor:~ $ find teste/ -mtime -300 | xargs du -ch
> > > > > 239M total
> > > > >
> > > > > Desde já, obrigado.
> > > > >
> > > > > On 20/04/07, Pedro Drimel <pedrodrimel@...> wrote:
> > > > > >
> > > > > > Tiago, obrigado com o xargs deu certo, achei que ja tinha
> testado
> > > > com o
> > > > > > xargs mas não importa, interessa que deu certo...
> > > > > >
> > > > > > Renato, minha dúvida não era em relação ao du, e sim como passar
> > > > para o
> > > > > > find executar o du e somar os resultados dos arquivos
> encontrados
> > > > por ele,
> > > > > > mesmo assim, obrigado. A propósito, costumo utilizar o man
> --help
> > > > e não
> > > > > > pretendo encher a lista com esse tipo de dúvida.
> > > > > >
> > > > > > Julio, vou usar o xargs mesmo mas valeu... estou lendo a 6º
> edição
> > > > do seu
> > > > > > livro, muito bom, parabéns.
> > > > > >
> > > > > > Att,
> > > > > >
> > > > > > Pedro.
> > > > > >
> > > > > >
> > > > > > On 20/04/07, Julio C. Neves <julio.neves@...> wrote:
> > > > > > >
> > > > > > > Epa um one liner! Vai para a minha coleção:
> > > > > > >
> > > > > > > $ du -ch | cut -f1 -d' ' | sed
> > > > > > > 's/\(.*\)\.\(.\)K/\1\200/;s/\(.*\)\.\(.\)M/\1\200000/' | paste
> > > > -sd+ | bc
> > > > > > >
> > > > > > > Isto éo cut pega somente o num e o multiplicador (K ou M). O
> sed
> > > > guarda
> > > > > > > a
> > > > > > > parte inteira em \1 e a decimal em \2. Se ele encontra um K
> ele
> > o
> > > > > > > substitui
> > > > > > > pelo inteiro, seguido do decimal, seguido de 2 zeros, o que
> > > > equivale a
> > > > > > > multiplicar por 1000. Usei o mesmo raciocínio para o M. O
> paste
> > -s
> > > > > > > transforma a coluna resultante em uma linha e a opção -d+
> coloca
> > > > o sinal
> > > > > > > de
> > > > > > > mais como delimitador entre os numeros gerados. O bc faz a
> soma.
> > > > > > >
> > > > > > > Como trabalhamos somente com inteiros, pq o ponto decimal
> > dançou,
> > > tb
> > > > > > > poderíamos fazer da seguinte maneira:
> > > > > > >
> > > > > > > $ echo $(($(du -ch | cut -f1 -d' ' | sed
> > > > > > > 's/\(.*\)\.\(.\)K/\1\200/;s/\(.*\)\.\(.\)M/\1\200000/' | paste
> > > > -sd+)))
> > > > > > >
> > > > > > > Abração,
> > > > > > > Julio
> > > > > > > :wq
> > > > > > >
> > > > > > > Em 20/04/07, Pedro Drimel <
> > > > pedrodrimel@...<pedrodrimel%40gmail.com>>
> > > > > > > escreveu:
> > > > > > > >
> > > > > > > > Quebrei a cabeça mas não consegui encontrar uma solução para
> > > > utilizar
> > > > > > > o
> > > > > > > > du
> > > > > > > > como soma de tamanho sobre arquivos encontrados pelo find
> > > > > > > >
> > > > > > > > exemplo:
> > > > > > > >
> > > > > > > > pedro@servidor:~ $ du -ch .
> > > > > > > > 4.0K ./.kde/share/config
> > > > > > > > 4.0K ./.kde/share
> > > > > > > > 4.0K ./.kde
> > > > > > > > 4.0K ./Documents
> > > > > > > > 4.0K ./public_html
> > > > > > > > 4.0K ./.xemacs
> > > > > > > > 133K .
> > > > > > > > 133K total
> > > > > > > >
> > > > > > > > pedro@servidor:~ $ find . -type f -exec du -h {} \;
> > > > > > > > 4.0K ./.kde/share/config/kdesktoprc
> > > > > > > > 4.0K ./.xim
> > > > > > > > 4.0K ./Documents/.directory
> > > > > > > > 4.0K ./.exrc
> > > > > > > > 4.0K ./.Xmodmap
> > > > > > > > 4.0K ./.bashrc
> > > > > > > > 4.0K ./.kermrc
> > > > > > > > 4.0K ./.muttrc
> > > > > > > > 4.0K ./public_html/.directory
> > > > > > > > 4.0K ./.urlview
> > > > > > > > 4.0K ./.viminfo
> > > > > > > > 4.0K ./.xemacs/init.el
> > > > > > > > 4.0K ./.sh_history_
> > > > > > > > 0 ./.bash_history
> > > > > > > > 8.0K ./.Xdefaults
> > > > > > > > 12K ./.xscreensaver
> > > > > > > > 4.0K ./.profile
> > > > > > > > 4.0K ./.xinitrc
> > > > > > > > 8.0K ./.xcoralrc
> > > > > > > > 4.0K ./.emacs
> > > > > > > > 16K ./.gnu-emacs
> > > > > > > > 4.0K ./.zshrc
> > > > > > > > 4.0K ./.xtalkrc
> > > > > > > > 4.0K ./.sh_history_pneto6
> > > > > > > > 4.0K ./.xsession
> > > > > > > > 4.0K ./.xserverrc.secure
> > > > > > > > 4.0K ./.dvipsrc
> > > > > > > > O que eu quero é que no final do find exiba o total da soma
> > dos
> > > > > > > arquivos
> > > > > > > > (133K), até pensei em somar todos os valores mas pode vir a
> > > > ter Mega
> > > > > > > ou
> > > > > > > > Giga, deve ter algo mais racional que isso. Na verdade vou
> > > > utilizar o
> > > > > > > find
> > > > > > > > com -mtime e aí sim faz sentido pois o find . da na mesma
> que
> > > > o du -h
> > > > > > > .
> > > > > > > >
> > > > > > > > Se alguém tiver uma idéia, agradeço.
> > > > > > > >
> > > > > > > > [As partes desta mensagem que não continham texto foram
> > > removidas]
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Abraços,
> > > > > > > Julio
> > > > > > > http://www.julioneves.com - Um livro sobre Bash completo e
> > on-line
> > > > > > > :wq
> > > > > > >
> > > > > > > [As partes desta mensagem que não continham texto foram
> > removidas]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [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]