Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用bash脚本提取tar文件_Linux_Bash_Tar - Fatal编程技术网

Linux 使用bash脚本提取tar文件

Linux 使用bash脚本提取tar文件,linux,bash,tar,Linux,Bash,Tar,您好,我正在使用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

您好,我正在使用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 -xvf xyz.tar |grep '\.tar$' | xargs -n 1 | tar -xvf

但是这将只提取一个级别的tar文件,如果提取的tar包含另一个tar,那么您将不得不再次使用管道传输它。我希望你能明白这一点。

你应该从提取的tar文件中再次提取内容。我应该怎么做?你能给我一个示例代码,它将用不同的tar名称在tar文件中提取tar文件吗?添加了一个答案。它回答了这个问题吗?如果是,请将其标记为已回答。我已尝试过。是,它只能提取。但是有没有最简单的方法来提取所有的tar文件呢?