我有一个需要在
Linux系统上复制的文件列表 – 每个文件的大小从10到100GB不等.
我只想复制到本地文件系统.有没有办法以简单的方式并行执行此操作 – 每个负责复制文件的多个进程?
我可以轻松编写一个多线程程序来执行此操作,但我很想知道是否有一个低级Linux方法来执行此操作.
解决方法
如果您的系统没有被它打乱(例如,文件可能在缓存中),那么GNU Parallel
http://www.gnu.org/software/parallel/可能适合您:
find . -print0 | parallel -0 -j10 cp {} destdir
这将运行10个并发cps.
亲:阅读简单.
Con:GNU Parallel在大多数系统上都不是标准配置 – 因此您可能需要安装它.
观看介绍视频了解更多信息:http://www.youtube.com/watch?v=OpaiGYxkSuQ
有关并行磁盘I / O的讨论,另请参见https://oletange.wordpress.com/2015/07/04/parallel-disk-io-is-it-faster/.