使用 bash 脚本提取 tar 文件
Posted
技术标签:
【中文标题】使用 bash 脚本提取 tar 文件【英文标题】:Extract tar file using bash script 【发布时间】:2014-04-28 06:05:30 【问题描述】:您好,我正在使用 Bash 脚本,我在提取 tar 文件时遇到困难,并且 tar 文件内部是另一个 tar 文件。请查看下面的代码并请向我提供反馈,因为代码所做的唯一事情就是提取第一个 tar 文件并将其删除。
#!/bin/bash
output=$(df -h)
bundle=$(awk -F = 'print $2' config.txt)
bundlename=$(echo $bundle | awk -F / 'print $11')
echo "$output"
wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"
我的问题是提取 tar 文件中所有 tar 文件的正确方法/代码是什么?。
【问题讨论】:
你应该从解压的 tar 文件中再次解压内容。 我应该怎么做?你能给我一些示例代码,它将在 tar 文件中提取具有不同 tar 名称的 tar 文件吗? 对此添加了答案。 它回答了这个问题吗?如果是,请将其标记为已回答。 我试过了,是的,它只能提取 .但是有没有最简单的方法来提取所有的 tar 文件? 【参考方案1】:您可以再次将 tar 提取的输出通过管道传输到 tar command
以运行它。例如:
tar -xvf xyz.tar |grep '\.tar$' | xargs -n 1 | tar -xvf
但这只会提取一个级别的 tar 文件,如果提取的 tar 包含另一个 tar,那么您将不得不再次对其进行管道传输。我希望你明白这一点。
【讨论】:
以上是关于使用 bash 脚本提取 tar 文件的主要内容,如果未能解决你的问题,请参考以下文章
使用bash shell脚本从文件中查找和提取特定字符串后的值?