Embora cpnão tenha essa funcionalidade, você pode usar pvpara fazer isso:
pv my_big_file > backup/my_big_file
Nota: este método perderá as permissões e a propriedade do arquivo. Os arquivos copiados dessa maneira terão as mesmas permissões como se você os tivesse criado e pertencerão a você.
Neste exemplo, pvbasicamente apenas gera o arquivo para stdout*, que você redireciona para um arquivo usando o >operador. Simultaneamente, ele imprime informações sobre o progresso no terminal quando você faz isso.
Você pode precisar instalar pv (alternativamente, digite sudo apt-get install pv) em seu sistema.
*: A parte técnica
Existem três fluxos de dados importantes em um sistema do tipo unix: stdout (saída padrão), stderr (erro padrão) e stdin (entrada padrão). Cada programa tem todos os três, por assim dizer. O >operador de redirecionamento redireciona a saída do programa para um arquivo. Sem argumentos, como você vê acima, >redireciona a saída padrão de um programa para um arquivo. cpbasicamente não faz nada mais chique do que
cat source > destination
(onde catapenas lê um arquivo e o imprime em stdout). pvé como cat, mas se você redirecionar seu fluxo de saída para outro lugar, ele imprimirá informações de progresso para stdout.
Não há. Veja aqui o porquê. Embora faça mais do que você precisa, rsynctem um --progressparâmetro. O -airá manter as permissões, etc, e -hserá legível por humanos.
Se você quiser ver se seus arquivos estão sendo transferidos corretamente, você pode usar gcpe gcpé como cp, mas por padrão fornece uma barra de progresso para que você possa ver o que está sendo copiado. Como o wiki do programa observa , gcppossui vários recursos úteis, como
indicação de progressão de transferência
cópia contínua em caso de erro (pule para o próximo arquivo)
copy status logging: o gcp registra todas as suas ações para que seja possível saber quais arquivos foram copiados com sucesso
desfiguração de nomes para lidar com as limitações do sistema de arquivos de destino (por exemplo, exclusão de caracteres incompatíveis "*" ou "?" em FAT)
No entanto, mesmo quando a barra de progresso atingir 100% ao usar a ferramenta, você deve esperar até que o prompt do terminal reapareça antes de remover a mídia com segurança para garantir que o processo de transferência tenha sido concluído com êxito.
gcpé usado para copiar arquivos e tem opções como --preservepara que vários atributos e permissões possam ser preservados e --recursivepara que diretórios inteiros possam ser copiados. Mais informações sobre suas opções podem ser encontradas entrando man gcpou acessando as páginas de manual do Ubuntu online . Um tutorial também está disponível neste site .
Instale gcpa partir dos repositórios com
sudo apt-get install gcp
( Nota : no Ubuntu 12.10 o novo ponto de automount é, por exemplo, /media/user/usbdisk)
Você pode copiar um arquivo para sua mídia digitando
Eu gosto de usar cURL para esse propósito exato. A página man lista o protocolo "FILE" como suportado, então use-o como qualquer outro protocolo em uma URL:
curl -o destination FILE://source
Velocidade, progresso, tempo restante e muito mais - tudo em um formato familiar.
O kernel conhece a maioria dos dados, como velocidade e, muitas vezes, também porcentagem. Os kernels modernos expõem isso por meio de seu sistema de arquivos /proc.
showspeed de https://github.com/jnweiger/showspeed usa essa informação. Ele pode ser anexado a programas já em execução e fornecer atualizações periódicas como esta:
Se você tiver o rsync 3.1 ou superior ( rsync --version), poderá copiar (cp -Rpn) preservando permissões e propriedade, diretórios recursivos, "sem clobber" e exibir o progresso geral (em vez de apenas o progresso por arquivo), taxa de cópia e ( muito áspero) tempo estimado restante com:
sudo rsync -a --info=progress2 --no-i-r /source /destination
Observe que o sudo só é necessário se estiver lidando com diretórios/arquivos que você não possui. Além disso, sem o --no-i-r, a porcentagem pode ser redefinida para um número menor em algum momento durante a cópia. Talvez as versões posteriores do rsync sejam padronizadas para no-ir com info=progress2, mas isso não acontece na versão atual do 3.1.2.
Descobri que a porcentagem e o tempo restantes são superestimados grosseiramente ao copiar para um diretório que já contém arquivos (ou seja, como quando você normalmente usaria cp -n "no clobber").
Embora
cp
não tenha essa funcionalidade, você pode usarpv
para fazer isso:Nota: este método perderá as permissões e a propriedade do arquivo. Os arquivos copiados dessa maneira terão as mesmas permissões como se você os tivesse criado e pertencerão a você.
Neste exemplo,
pv
basicamente apenas gera o arquivo para stdout*, que você redireciona para um arquivo usando o>
operador. Simultaneamente, ele imprime informações sobre o progresso no terminal quando você faz isso.Isto é o que parece:
Você pode precisar instalar pv (alternativamente, digite
sudo apt-get install pv
) em seu sistema.*: A parte técnica
Existem três fluxos de dados importantes em um sistema do tipo unix: stdout (saída padrão), stderr (erro padrão) e stdin (entrada padrão). Cada programa tem todos os três, por assim dizer. O
>
operador de redirecionamento redireciona a saída do programa para um arquivo. Sem argumentos, como você vê acima,>
redireciona a saída padrão de um programa para um arquivo.cp
basicamente não faz nada mais chique do que(onde
cat
apenas lê um arquivo e o imprime em stdout).pv
é como cat, mas se você redirecionar seu fluxo de saída para outro lugar, ele imprimirá informações de progresso para stdout.Dê uma olhada
man pv
para saber mais sobre isso.Outra opção, como o DoR sugere nesta resposta , é usar o rsync:
Isso preservará as permissões/propriedade dos arquivos enquanto mostra o progresso.
Não há. Veja aqui o porquê. Embora faça mais do que você precisa,
rsync
tem um--progress
parâmetro. O-a
irá manter as permissões, etc, e-h
será legível por humanos.A saída será algo como isto:
Se você quiser ver se seus arquivos estão sendo transferidos corretamente, você pode usar
gcp
egcp
é como cp, mas por padrão fornece uma barra de progresso para que você possa ver o que está sendo copiado. Como o wiki do programa observa ,gcp
possui vários recursos úteis, comoNo entanto, mesmo quando a barra de progresso atingir 100% ao usar a ferramenta, você deve esperar até que o prompt do terminal reapareça antes de remover a mídia com segurança para garantir que o processo de transferência tenha sido concluído com êxito.
gcp
é usado para copiar arquivos e tem opções como--preserve
para que vários atributos e permissões possam ser preservados e--recursive
para que diretórios inteiros possam ser copiados. Mais informações sobre suas opções podem ser encontradas entrandoman gcp
ou acessando as páginas de manual do Ubuntu online . Um tutorial também está disponível neste site .Instale
gcp
a partir dos repositórios com( Nota : no Ubuntu 12.10 o novo ponto de automount é, por exemplo,
/media/user/usbdisk
)Você pode copiar um arquivo para sua mídia digitando
e copie uma pasta para sua mídia com
Exemplo de saída
gcp
com a barra de progresso:É claro que você pode especificar vários arquivos ou pastas para copiar para o seu disco, e há muitas outras opções cobertas no
man gcp
.Eu gosto de usar cURL para esse propósito exato. A página man lista o protocolo "FILE" como suportado, então use-o como qualquer outro protocolo em uma URL:
Velocidade, progresso, tempo restante e muito mais - tudo em um formato familiar.
Existe uma ferramenta chamada
progress
nos repositórios que é capaz de examinar vários comandos diferentes e exibir informações de progresso para eles.Instale-o usando o comando
Esta ferramenta pode ser usada assim:
Resultado:
Embora não exiba velocidade, ao copiar vários arquivos, a
-v
opção docp
comando fornecerá informações de progresso. por exemploO kernel conhece a maioria dos dados, como velocidade e, muitas vezes, também porcentagem. Os kernels modernos expõem isso por meio de seu sistema de arquivos /proc.
showspeed de https://github.com/jnweiger/showspeed usa essa informação. Ele pode ser anexado a programas já em execução e fornecer atualizações periódicas como esta:
Enquanto
pv
pode lidar comcp
tarefas locais, usardd
withpv
pode lidar com tarefas locais (cp
) e remotas (scp
).Garanta as
path/to/dest.mkv
saídas portouch path/to/dest.mkv
Isso pode mostrar o progresso, mas se você quiser as informações de porcentagem,
Substitua
100M
acima pelo tamanho real do seu arquivo de origem.Aí vem a parte remota
Embora
scp
dificilmente possa mostrar o progresso atual, usardd
withpv
é muito fácil.Se você tiver o rsync 3.1 ou superior (
rsync --version
), poderá copiar (cp -Rpn) preservando permissões e propriedade, diretórios recursivos, "sem clobber" e exibir o progresso geral (em vez de apenas o progresso por arquivo), taxa de cópia e ( muito áspero) tempo estimado restante com:Observe que o sudo só é necessário se estiver lidando com diretórios/arquivos que você não possui. Além disso, sem o
--no-i-r
, a porcentagem pode ser redefinida para um número menor em algum momento durante a cópia. Talvez as versões posteriores do rsync sejam padronizadas para no-ir com info=progress2, mas isso não acontece na versão atual do 3.1.2.Descobri que a porcentagem e o tempo restantes são superestimados grosseiramente ao copiar para um diretório que já contém arquivos (ou seja, como quando você normalmente usaria cp -n "no clobber").
dd status=progress
Opção adicionada no GNU Coreutils 8.24+ (Ubuntu 16.04):
O terminal mostra uma linha do tipo:
que é atualizado regularmente.
Veja também: Como você monitora o progresso do dd?