Existe uma boa ferramenta de cópia de arquivos?

8

O diálogo de cópia fica parado aos 0 segundos restantes ...

Sempre que tento copiar arquivos grandes para o meu pendrive USB (em qualquer formato), ele sempre para no último momento. Termina depois de muito tempo .

Eu pesquisei no Ask Ubuntu por posts semelhantes e consegui muitos , mas nenhum deles tem boas soluções.

Então ... Existe alguma ferramenta alternativa de cópia como o Teracopy no Windows?

Ou há alguma correção que eu possa fazer?

Digite a descrição da imagem aqui

Severus Tux
fonte
Também por favor, deixe-me saber quais arquivos eu deveria Carregar para referência
Severo Tux
2
Não tenho muita certeza, mas presumo que seu problema esteja relacionado ao cache de gravação USB . Procure postagens sobre como desativar isso. Todo o processo de cópia parecerá mais lento, mas deve ser realmente finalizado quando parecer finalizado.
Byte Commander
@ByteCommander Por mais lento, você quer dizer velocidade real ??
Severus Tux
2
Não estou muito familiarizado com esse tópico, mas o armazenamento em cache mantém apenas os dados que você deseja gravar no dispositivo USB na memória e os grava posteriormente, quando acha que o barramento ou os dispositivos estão menos ocupados ou quando pode otimizar o caminho para salvar os blocos de dados juntos ... Isso não deve melhorar muito a velocidade de gravação física real, mas parecerá mais rápido para você, porque o processo de cópia reporta a conclusão assim que todos os dados a serem gravados estiverem no cache. Mas ainda leva mais tempo para gravar o cache no dispositivo. Você não pode desconectá-lo imediatamente de qualquer maneira antes que o cache seja gravado
Byte Commander
Sim, a velocidade real da cópia seria a mesma (talvez um pouco mais lenta porque o buffer torna menos provável que haja um momento em que nada está sendo gravado no disco, mas não muito em um sistema com carga leve), mas a caixa de diálogo de progresso seria mais preciso.
Hbbs

Respostas:

6

Você não deve se preocupar muito com isso.
Talvez o seu pendrive USB seja de "qualidade inferior".
A saída do diálogo referente ao horário é enganosa.

Outras ferramentas de cópia podem ter um comportamento de saída diferente,
mas não melhoram a velocidade de gravação da unidade USB.
O mais importante de tudo é que finalmente a ação de cópia é bem-sucedida.

O que você pode fazer é otimizar os agendadores de entrada / saída de discos.

Instale gksu(quando você ainda não o fez) para editar arquivos com geditcomo root:

sudo apt-get install gksu  

Agora otimize a prioridade de todos os processos em execução para vários tipos de discos:

gksudo gedit /etc/udev/rules.d/60-schedulers.rules

Cole as seguintes linhas neste arquivo vazio e salve o arquivo depois:

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  

As alterações feitas entram em vigor após uma reinicialização do sistema operacional.

Além disso ... uma solução alternativa de cópia está disponível nos repositórios Ubuntu:

sudo apt-get install dirdiff  

Agora inicie a ferramenta a partir de um terminal para comparar ou copiar arquivos e pastas:

dirdiff

dirdiffé uma GUI para diffe pode lidar com até 5 árvores. Ele exibe uma janela principal com uma lista de arquivos diferentes entre as árvores, com quadrados coloridos para indicar a idade relativa das versões. Um menu permite exibir as diferenças entre duas versões em outra janela. Outro menu permite copiar arquivos e pastas de uma árvore para outra.

Resumo: O mais relevante de tudo é a qualidade do disco USB e seus recursos de velocidade de gravação!

cl-netbox
fonte
7

O motivo pelo qual você vê a cópia acontecendo da maneira que faz é que as gravações na unidade USB são assíncronas .

Quando você copia um arquivo, ele realmente o copia para o buffer da unidade USB, que está na RAM do seu computador. A primeira parte da cópia é muito rápida porque está apenas entrando no buffer. Os dados são liberadosdo buffer para a unidade USB a uma taxa muito mais lenta. Depois que o buffer é preenchido, é necessário aguardar a liberação de alguns dados para o disco antes de poder colocá-lo mais no buffer, para que a cópia diminua, diminuindo efetivamente à velocidade da unidade USB. Depois que todo o arquivo foi colocado no buffer, parece que o arquivo foi copiado. No entanto, nem todos os dados foram liberados do buffer para o próprio disco USB. Alguns programas de cópia retornam e deixam a descarga continuar em segundo plano. Alguns esperarão até que todos os dados sejam liberados, e é por isso que permanecerão 100% por algum tempo.

Você pode mudar o disco para o modo síncrono, o que significa que todos os dados são gravados imediatamente na unidade USB sem usar o buffer. Isso dará a impressão de uma transferência mais suave de dados, mas pode realmente acabar com uma redução geral da velocidade.

Se você montar manualmente o disco a partir da linha de comando, poderá adicionar -o sync.

Se você o montar usando o fstab, poderá adicionar a syncopção

Se você depende do Ubuntu montá-lo para você quando acessá-lo na GUI, você pode modificar as opções de montagem na linha de comando, uma vez montado:

sudo mount -o remount -o sync /media/yourname/diskname
Majenko
fonte
2
Essa é a resposta.
kos
2

O problema provavelmente é que o arquivo seja lido e armazenado na memória completamente antes de ser completamente gravado na unidade de destino.

Isso não significa responder exatamente à pergunta, mas uma solução alternativa pode estar sendo usada pvna linha de comando no caso de arquivos grandes:

sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install pv

Sempre que é necessário copiar um arquivo grande:

pv /path/to/big_file >/media/username/usb/big_file

Note-se que isso sofre de um problema de buffer similar indesejado quando usado em um tubo; se for esse o caso, uma correção está limitando a taxa de transferência para algo ligeiramente acima da velocidade de gravação da unidade de destino:

[...] | pv -L 10M >/media/username/usb/big_file # Limits the transfer rate to 10 MB/s
kos
fonte
1

Existem várias alternativas. Você pode usar a abordagem de linha de comando:

cp *source* *target*

onde origem é o arquivo que você deseja copiar e o destino é o arquivo ou pasta para o qual você deseja copiar. Outras opções podem ser encontradas em https://softwarerecs.stackexchange.com/

Elder Geek
fonte
0
dd if=INPUT_FILE_PATH of=OUTPUT_FILE_PATH bs=$(( 64 * 1024 * 1024 )) oflag=sync

Isso lerá seu ifarquivo e ofgravará em arquivos em pedaços de 64MiB e espere até que cada pedaço seja gravado antes de iniciar o próximo. O utilitário que você está usando provavelmente está apenas lendo o arquivo na memória e enviando-o para o disco (e não há como dizer quantos bytes por vez ele está sendo executado). O cache de gravação pode estar no próprio dongle usb, no entanto .... Portanto, a velocidade de 60MiB por segundo que você está obtendo é a taxa de transferência pela conexão usb ao cache interno do dongle. Mas isso não é provável, a menos que seja um dongle USB3. O USB2 não possui taxa de transferência suficiente para suportar 60MiB por segundo.

Dmitry Rubanovich
fonte
0

Não há necessidade de todas as opções acima. Simplesmente abra uma janela de terminal quando a transferência estiver mostrando 0% à esquerda e digite syncNas páginas do manual, o comando sync libera os buffers do sistema de arquivos, mas é claro que apenas liberará aqueles aos quais você tem direitos. Se você quiser descarregar todos eles, digitesudo sync

Scooby-2
fonte