gpt4 book ai didi

linux - 加速/并行化大规模硬链接(hard link)循环

转载 作者:太空宇宙 更新时间:2023-11-04 10:15:11 28 4
gpt4 key购买 nike

我正在编写一个脚本,该脚本生成一个包含数千个二进制文件的文件夹,这些二进制文件将被捆绑到不同产品的多个安装程序中。脚本的很大一部分将文件从任意位置“复制”到临时路径,以生成安装程序/tarball 所需的输出结构。

这个操作中最慢的一个部分是一个巨大的循环,基本上看起来像:

for i in $(find /some/tmp/path -iname "*")
do
ln "${i}" "/TEMP1/${i}"
done

这样做的原因是它是一种将文件“复制”到所需位置以生成最终输出 tarball 的更快方法,并且它不会占用与文件的实际副本一样多的磁盘空间。

但是,这个循环非常慢(硬链接(hard link) 30,000 个文件大约需要 15 分钟)。假设这是在配备高端 SSD 的非常强大的机器上运行,这是否是可以通过使用 parallel 类型的工具包装它来大大加速的任务,或者只是后台所有ln 操作,跟踪ln 操作的PID,最后检查是否所有进程都成功退出?或者,还有其他我没有考虑过的方法可以加快速度吗?

最佳答案

这应该可以解决问题。

for i in $(find /some/tmp/path -iname "*")
do
ln "${i}" "/TEMP1/${i}" &
done
wait

让我知道它是否有效。问候!

关于linux - 加速/并行化大规模硬链接(hard link)循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46696855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com