gpt4 book ai didi

linux - tar 命令的 Bash 脚本包装器需要很长时间才能执行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:56 25 4
gpt4 key购买 nike

我正在尝试从 tar 文件 (~50Gb) 中提取感兴趣的特定文件。当我从命令行手动提取文件时,它需要很短的时间(1-2 秒)。当我尝试通过 bash 脚本处理它以自动提取特定文件时,脚本在 tar 提取过程中挂起。我知道它卡在这里,因为我可以终止 tar 进程并且脚本继续。文件被提取,因为我可以在脚本仍在等待 tar 进程返回时“查看”文件和内容。

这是一段代码:

for line in $contents
do
if [ -f $line ]; then
/bin/tar xf $tarfile -C $tmp $line
fi
done

我试图为 tar 提取创建一个子 shell,但后来我有 100 多个挂起的 tar 进程。关于为什么会这样有什么想法吗?

谢谢!!

最佳答案

您可以在提取时向 tar 提供多个文件名参数,这样做:

/bin/tar xf $tarfile -C $tmp $contents

您的方法必须在 tar 文件中搜索要提取的每个文件。如果提取一个文件需要 1-2 秒,而您要提取 50 个文件,则需要 50-100 秒。

通过一次提供所有文件名,它只扫描 tar 文件一次,并在遇到每个文件时提取它。

关于linux - tar 命令的 Bash 脚本包装器需要很长时间才能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701789/

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