linux上的多线程cp?

lee*_*d00 17 cp file-copy multithreading

cpLinux 上有多线程命令吗?

我知道如何在 Windows 上执行此操作,但我不知道如何在 Linux 环境中执行此操作。

psu*_*usi 29

正如 Celada 所提到的,使用多个执行线程是没有意义的,因为复制操作并没有真正使用 CPU。正如 ryekayo 所提到的,您可以运行多个实例,cp以便最终获得多个并发 IO 流,但即使这样通常也会适得其反。如果您将文件从一个位置复制到同一磁盘上的另一个位置,尝试一次做多个将导致磁盘浪费时间在每个文件之间来回寻找,这会减慢速度。一次复制多个文件真正有益的唯一情况是,例如,将多个文件从几个不同的慢速可移动磁盘复制到快速硬盘上,反之亦然。

  • 磁盘寻道仅与非 SSD 磁盘相关。 (2认同)
  • @ThorbjørnRavnAndersen:但是对于任何类型的介质,随机搜索往往与缓存(特别是预读缓存)的交互很差。 (2认同)
  • 在亚马逊上,使用多线程访问同一顺序文件时,顺序读取速度最多可提高 10 倍。所以答案不再准确 (2认同)

Ram*_*esh 17

好吧,我相信您可以使用gnu parallel来完成您的任务。

 seq 70 | parallel -j70 cp filename
Run Code Online (Sandbox Code Playgroud)

你可以看到使用的详细说明GNU并行从我的其他的答案在这里

我刚刚在我的系统中测试了上述命令,我可以看到正在制作 70 个文件副本。

  • 并且复制“文件名”70 次? (3认同)