楼主:
starlin2 (重新开始生活)
2021-05-21 13:08:35大家好,小弟最近因为需要复制个很多目录跟档案的project,
觉得只用cp -r速度太慢,因此想用parallel的方式复制,
但用find xxx很麻烦需要先建目录再copy档案,
如果各位大大有更好的方式再麻烦指导一下。
我现在遇到的问题是,我用parallel的方式去mkdir,
路径大概是这样
source_dir-projname-folder1-folder11-folder111
-folder12-folder122
指令如下:
cd source_dir
find projname -type d | parallel -j32 -retries 99 mkdir -v dest_dir/{}
我已经有加上retries了,应该如果他先建folder11
而此时folder1还没建就会出现error,
预期加上retries应该会再重试,但似乎没用,
我加到99了还是会出现像这样的错误,
mkdir: created directory '/dest_dir/projname/folder1'
mkdir: cannot create directory ‘/dest_dir/projname/folder11/folder111’: No
such file or directory
mkdir: cannot create directory ‘/dest_dir/projname/folder12/folder122’: No
such file or directory
mkdir: created directory '/dest_dir/projname/folder11'
想问一下各位大大这个是否有什么解快方式?感谢各位大大收看以及指导。
mkdir 加个 -p, 会连老爸,阿公跟阿祖之类的一起建
楼主:
starlin2 (重新开始生活)
2021-05-21 14:53:00喔喔~太感谢了,原来只要-p就可以了,多谢指导。
然后这种你可以考虑把样本 tar 起来, 再解到目标目录
楼主:
starlin2 (重新开始生活)
2021-05-22 08:48:00没办法,我没有source的写入权限.....><
楼主:
starlin2 (重新开始生活)
2021-05-24 16:58:00但就是因为source在远端,遍历的速度比较慢,所以才要用parallel的方式加快,直接tar到local也还是一样慢....><
楼主:
starlin2 (重新开始生活)
2021-05-25 11:26:00我在windows用robocopy /s /MT:32的话大概1,2个小时co完不过如果在linux用cp -r或是rsync的话大概都5,6小时以上昨天试了tar cvf跟tar -I pigz -cf也都差不多慢....