在GnuParallel中复制目录

时间:2015-06-10 06:54:54

标签: gnu gnu-parallel

我有一项基本工作要做:我想通过保留其中的所有结构(子文件夹和文件)将一个目录的内容复制到另一个位置。这个目录的大小非常大,我想使用GnuParallel并行执行复制。但是,我似乎无法找到正确的命令。

find . -print0 | parallel -0 cp -r dirToCopy/ newDirLocation/

似乎没有做任何事情,而

find . -print0 | parallel -0 cp {} newDirLocation/

仅复制原始目录中的文件,而不保留文件所在的结构和层次结构(基本上它复制没有子文件夹的文件)。

复制此目录的正确方法是保留目录内容吗?

1 个答案:

答案 0 :(得分:1)

您需要分两个阶段完成。创建目录:

find . -type d -print0 | parallel -0 mkdir newDirLocation/{}

创建文件:

find . -type f -print0 | parallel -0 cp newDirLocation/{}

请注意,如果您的磁盘是单个1主轴硬盘,那么并行复制的速度可能会更慢。只有这样才能确定它是否可以尝试并测量它。