我的要求很简单,但找不到有效的方法。
我有一个名为 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/