我有一项基本工作要做:我想通过保留其中的所有结构(子文件夹和文件)将一个目录的内容复制到另一个位置。这个目录的大小非常大,我想使用GnuParallel并行执行复制。但是,我似乎无法找到正确的命令。
find . -print0 | parallel -0 cp -r dirToCopy/ newDirLocation/
似乎没有做任何事情,而
find . -print0 | parallel -0 cp {} newDirLocation/
仅复制原始目录中的文件,而不保留文件所在的结构和层次结构(基本上它复制没有子文件夹的文件)。
复制此目录的正确方法是保留目录内容吗?
答案 0 :(得分:1)
您需要分两个阶段完成。创建目录:
find . -type d -print0 | parallel -0 mkdir newDirLocation/{}
创建文件:
find . -type f -print0 | parallel -0 cp newDirLocation/{}
请注意,如果您的磁盘是单个1主轴硬盘,那么并行复制的速度可能会更慢。只有这样才能确定它是否可以尝试并测量它。