Barra de progresso no comando CP ou MV

Iniciado por clebertadeu, 02 de Janeiro de 2010, 02:00

tópico anterior - próximo tópico

clebertadeu

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?
----------
Cleber Tadeu - Programador Web Jr.

niquelnausea

Com o Ctrl + c e Ctrl +v aparece uma janelinha mostrando o progresso.

clebertadeu

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.
----------
Cleber Tadeu - Programador Web Jr.

agente100gelo

Advogado e analista de sistema cearense.
Twitter: @glaydson

Alyscom

#4
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
O álcool é o photoshop da vida real
 

clebertadeu

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
----------
Cleber Tadeu - Programador Web Jr.

sboorbou

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...)
duvida eu em você sinto... duvida a raiva leva, raiva ao ódio leva, ódio é o lado negro da força - Mestre Yoda

alarcon

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.

clebertadeu

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
----------
Cleber Tadeu - Programador Web Jr.

Alyscom

Olá!! :D
Ao invés de usar => poderiamos usar ▬► ou •», sei láh... Aqui tem mais símbolos legais!! ;)



[]'s



Alyscom
O álcool é o photoshop da vida real
 

Alyscom

Queria que o meu ficasse assim!! *-* heheh

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



[]'s


Alyscom
O álcool é o photoshop da vida real
 

clebertadeu

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
----------
Cleber Tadeu - Programador Web Jr.