Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在GnuParallel中复制目录_Gnu_Gnu Parallel - Fatal编程技术网

在GnuParallel中复制目录

在GnuParallel中复制目录,gnu,gnu-parallel,Gnu,Gnu Parallel,我有一项基本的工作要做:我想通过保存目录中的所有结构(子文件夹和文件),将一个目录的内容复制到另一个位置。这个目录的大小非常大,我想使用GnuParallel并行执行复制。然而,我似乎无法找到适当的命令来这样做 find . -print0 | parallel -0 cp -r dirToCopy/ newDirLocation/ 似乎什么都没做,而 find . -print0 | parallel -0 cp {} newDirLocation/ 仅复制原始目录中的文件,而不保留文件所

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

find . -print0 | parallel -0 cp -r dirToCopy/ newDirLocation/
似乎什么都没做,而

find . -print0 | parallel -0 cp {} newDirLocation/
仅复制原始目录中的文件,而不保留文件所在的结构和层次结构(基本上它复制的文件没有子文件夹)


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

您需要分两个阶段执行此操作。创建目录:

find . -type d -print0 | parallel -0 mkdir newDirLocation/{}
创建文件:

find . -type f -print0 | parallel -0 cp newDirLocation/{}
请注意,如果您的磁盘是单轴硬盘,则并行复制的速度很可能较慢。唯一能确定它的方法就是尝试和测量它