web-dev-qa-db-ja.com

LinuxのマルチスレッドCP?

Linuxにマルチスレッドのcpコマンドはありますか?

Windowsでこれを行う方法は知っていますが、Linux環境でこれをどのように処理するかはわかりません。

17
leeand00

Celadaが述べたように、コピー操作は実際にはCPUを使用しないため、複数の実行スレッドを使用しても意味がありません。 ryekayoが述べたように、cpの複数のインスタンスを実行して、複数のIOストリームを同時に発生させることができますが、これでも通常は逆効果です。ファイルをコピーする場合同じディスク上のある場所から別の場所へ、一度に複数を実行しようとすると、ディスクが各ファイル間を行き来する時間を浪費することになり、処理速度が低下します。たとえば、複数の異なるリムーバブルディスクから高速ハードディスクに、またはその逆に、複数のファイルをコピーする場合は、ファイルを一度にコピーします。

27
psusi

まあ、私はあなたがあなたの仕事を達成するためにgnu parallelを使用できると信じています。

 seq 70 | parallel -j70 cp filename

私の他の答え here からgnu parallelの使用に関する詳細な説明を見ることができます。

上記のコマンドをシステムでテストしたところ、70のファイルのコピーが作成されていることがわかりました。

17
Ramesh

マルチスレッドプロセスに最も近いものは&バックグラウンドでコマンドを実行します。

したがって、このコマンドを使用するには、次のようにします。

cp file location &
0
ryekayo