parallel-processing - Gnu parallel 用于复制大量数据(大约 40 GB)

标签 parallel-processing gnu

我的要求很简单,但找不到有效的方法。

我有一个名为 Code 的目录,其中包含大约 14 个 lac 文件,大约 40 GB。我想要做的就是在同一目录级别创建此代码文件夹的副本。表示 Code 和 Code_Copy 在同一个文件夹中。

如果我使用查找。 | parallel cp -rpf {} ../Code_Copy 在 Code 文件夹中,我得到正确的目录结构加上 Code 文件夹中存在的所有文件递归地也直接复制到 Code_Copy。

如果我使用tree | parallel cp -rpf {} ../Code_Copy,目录结构已正确创建,但即使在树的输出行出现“cannot stat file :”等错误后,该命令仍会继续运行很长时间命令。

请帮忙提供解决方案。

提前致谢

最佳答案

tree 将失败,因为它不提供路径但使用 ascii 艺术绘制路径。这对于并行输入没有用。

最简单的解决方案是:

cp -a Code Code_Copy

但这可能会很慢。并行运行 rsync 可能是最快的解决方案,具体取决于您的磁盘系统:

find . -type f | parallel 'mkdir -p ../Copy/{//}; rsync -a {} ../Copy/{}'
# To get permissions and special files fixed
rsync -a ./ ../Copy/

要充分利用 GNU Parallel,请考虑完成教程:http://www.gnu.org/software/parallel/parallel_tutorial.html

关于parallel-processing - Gnu parallel 用于复制大量数据(大约 40 GB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740993/

相关文章:

c - OpenMP:任务中的竞争条件

erlang - 当它们同时传递消息时,为什么MPI比共享内存更难,而Erlang则更容易?

c++ - 尝试设置 GNU C++ 编译器,但在尝试编译 hello.cpp 时出现我不理解的错误

c++ - 如何纠正 *** glibc 在程序中检测到 *** 错误

c - 测量算法计算时间(使用MPI,并行计算)

r - 在 Linux 中使用 mclapply 时 R 中出现奇怪的段错误

python - 为什么 dask 不并行化这个工作流程?

vim - 我怎样才能让vim发送命令到gnu screen session

轮询 : How to detect if client hangs up 的 C 套接字编程

c - 服务器突然终止(非套接字上的套接字操作)