Cp multithread no linux? [duplicado]

11

Existe um comando cp multi-threaded no Linux?

Eu sei como fazer isso no Windows, mas não sei como isso é abordado em um ambiente Linux.

    
por leeand00 31.10.2014 / 16:04

3 respostas

25

Como Celada mencionou, não faria sentido usar vários threads de execução, já que uma operação de cópia realmente não usa o cpu. Como o ryekayo mencionou, é possível executar várias instâncias de cp para que você acabe com vários fluxos de E / S simultâneos, mas mesmo isso é tipicamente contraproducente. Se você estiver copiando arquivos de um local para outro no mesmo disco, tentar fazer mais de um por vez resultará no tempo de desperdício de disco alternando entre cada arquivo, o que atrasará as coisas. A única ocasião em que é realmente vantajoso copiar vários arquivos de uma só vez é, por exemplo, copiar vários arquivos de diversos discos lentos e removíveis para o seu disco rígido rápido ou vice-versa.

    
por 31.10.2014 / 16:15
16

Bem, acredito que você poderia usar o gnu paralelo para realizar sua tarefa.

 seq 70 | parallel -j70 cp filename

Você pode ver uma explicação detalhada sobre o uso de gnu paralelo da minha outra resposta aqui .

Acabei de testar o comando acima em meu sistema e pude ver que 70 cópias de arquivos estão sendo feitas.

    
por 31.10.2014 / 16:14
0

O mais próximo de um processo multiencadeado é o & , que executa comandos em segundo plano.

Então, para usar este comando, você faria algo como:

cp file location &
    
por 31.10.2014 / 16:09