Fórum Ubuntu Linux - PT

Área para Iniciantes => Iniciantes => Tópico iniciado por: clebertadeu online 02 de Janeiro de 2010, 02:00

Título: Barra de progresso no comando CP ou MV
Enviado por: clebertadeu online 02 de Janeiro de 2010, 02:00
eh possível visualizar o progresso de copia o movimentação de um arquivo?
Ex. quero mover um diretório recursivamente para outro local e gostaria de acompanhar o progresso desta movimentação.

se é possível, como faço?
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: niquelnausea online 02 de Janeiro de 2010, 10:38
Com o Ctrl + c e Ctrl +v aparece uma janelinha mostrando o progresso.
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: clebertadeu online 02 de Janeiro de 2010, 16:54
Citação de: niquelnausea online 02 de Janeiro de 2010, 10:38
Com o Ctrl + c e Ctrl +v aparece uma janelinha mostrando o progresso.
hum... isso eu acho que ja testei, sou novato no linux mas nem tanto! Gostaria de saber se existe a possibilidade disso acontecer no terminal semelhante ao que o comando apt-get faz pra baixar pacotes.
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: agente100gelo online 02 de Janeiro de 2010, 19:59
Nem sabia que dava pra fazer, mas uma pergunta no Google trouxe a sua solução:
http://chris-lamb.co.uk/2008/01/24/can-you-get-cp-to-give-a-progress-bar-like-wget/
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: Alyscom online 02 de Janeiro de 2010, 21:30
Citação de: agente100gelo online 02 de Janeiro de 2010, 19:59
Nem sabia que dava pra fazer, mas uma pergunta no Google trouxe a sua solução:
http://chris-lamb.co.uk/2008/01/24/can-you-get-cp-to-give-a-progress-bar-like-wget/
Que massa!!!  :)
Muito bom mesmo, já fiz isso aqui no meu!!
[edit] Não funcionou!! Tem como dar um resumo?? é que não entendi uma parte lá!! :P


[]'s


Alyscom
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: clebertadeu online 02 de Janeiro de 2010, 23:11
Citação de: agente100gelo online 02 de Janeiro de 2010, 19:59
Nem sabia que dava pra fazer, mas uma pergunta no Google trouxe a sua solução:
http://chris-lamb.co.uk/2008/01/24/can-you-get-cp-to-give-a-progress-bar-like-wget/

sou iniciante, nunca criei um comando no .sh do linux, é possível fazer um passo-a-passo pra o iniciante aqui? Obrigado pela resposta, era isso mesmo que eu queria
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: sboorbou online 03 de Janeiro de 2010, 09:46
se usar a opção -v durante a cópia, ele escreve a saída ( não é uma barrinha com %, mas mostra arquivo por arquivo que ta copiando...)
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: alarcon online 03 de Janeiro de 2010, 10:42
Citação de: Alyscom online 02 de Janeiro de 2010, 21:30
Citação de: agente100gelo online 02 de Janeiro de 2010, 19:59
Nem sabia que dava pra fazer, mas uma pergunta no Google trouxe a sua solução:
http://chris-lamb.co.uk/2008/01/24/can-you-get-cp-to-give-a-progress-bar-like-wget/
Que massa!!!  :)
Muito bom mesmo, já fiz isso aqui no meu!!
[edit] Não funcionou!! Tem como dar um resumo?? é que não entendi uma parte lá!! :P


[]'s


Alyscom


Aqui no meu teste funcionou, mas só para aquivos e não pastas com conteúdo dentro.

Agora eu fiz uma alteração no script que inicialmente estava assim:

Citar#!/bin/sh
cp_p()
{
  strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
     | awk '{
       count += $NF
           if (count % 10 == 0) {
              percent = count / total_size * 100
              printf "%3d%% [", percent
              for (i=0;i<=percent;i++)
                 printf "="
              printf ">"
              for (i=percent;i<100;i++)
                 printf " "
              printf "]\r"
           }
        }
        END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}

Alterei para:

Citar#!/bin/sh
function cp_p
{
  strace -q -ewrite cp -R -- "${1}" "${2}"  2>&1 \
     | awk '{
       count += $NF
           if (count % 10 == 0) {
              percent = count / total_size * 100
              printf "%3d%% [", percent
              for (i=0;i<=percent;i++)
                 printf "="
              printf ">"
              for (i=percent;i<100;i++)
                 printf " "
              printf "]\r"
           }
        }
        END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}


A mudança que fiz para funcionar eu destaquei em negrito.

Dei permissão de execução ao script (chmod +x nome_do_script) criado e digitei:

./nome_do_script "origem" "destino"

e funcionou só que a barra de progresso não fica totalmente na horizontal indo da esquerda para a direita e sim igual quando se baixa o flash, mais ou menos assim:

1%|==>
2%|===>
3%|====>

e assim por diante.
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: clebertadeu online 03 de Janeiro de 2010, 19:17
blza alarcon,, consegui fazer seguindo seus procedimentos, achei interessante mas visualmente feio! Bom se n'ao tiver mais nenhuma contribuição me dou por satisfeito
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: Alyscom online 04 de Janeiro de 2010, 03:45
Olá!! :D
Ao invés de usar => poderiamos usar ▬► ou •», sei láh... Aqui (http://yungy-gmdm.blogspot.com/2009/01/altnumeros-do-canto.html) tem mais símbolos legais!! ;)



[]'s



Alyscom
Título: Re: Barra de progresso no comando CP ou MV
Enviado por: Alyscom online 04 de Janeiro de 2010, 04:13
Queria que o meu ficasse assim!! *-* heheh

2.69MB.............................................0:00:00 |70.3MB/s|
|██████████████████████▓▒░  87% |



[]'s


Alyscom
Título: Re: Barra de progresso no comando CP ou MV [Resolvido]
Enviado por: clebertadeu online 05 de Janeiro de 2010, 00:13
bom consegui um script pesquisando na internet para resolver meu problema. O comportamento dele ainda não esta 100% do meu gosto mas ja melhorou 70% do que estava antes...

Baixando o arquivo com os comandos pré compilados
$ wget http://clebertadeu.com/linux/cmdbar.tar

faça um backup dos comandos cp, mv e rm (caso de algum zulu.. hehe)
$ sudo tar -cvvf ~/bin.tar /bin/cp /bin/mv /bin/rm

descompactando o arquivo com os comandos modificados na pasta /bin
$ sudo tar xvf cmdbar.tar -C /bin

crie um alias para "cp=cp -B" se achar necessário se não, quando for utilizar os comandos cp, mv ou rm só setar o flag "-B" Ex.:
$cp -B /home/usuario/Documentos/CD.iso /home/usuario/Imagens_cd
$ CD.iso  51% |******************                  | 783 MB 00:14


só isso.
Valeu galera que contribuiu e ajudou a resolver mais este pequeno probleminha