从xz文件中提取文件

时间:2015-04-23 11:47:47

标签: tar xz

我有一个巨大的文件file.tar.xz,其中包含许多具有类似结构的较小文本文件。我想快速检查压缩文件中的文件,并瞥见文件内容结构。我没有关于压缩文件中文件名的信息。在上面的场景中,有没有提取单个文件?

谢谢。

编辑:我不想tar -xvf file.tar.xz

1 个答案:

答案 0 :(得分:0)

根据评论中的讨论,我尝试了以下哪些对我有用。它可能不是最理想的解决方案,正则表达式可能需要一些改进,但你会得到这个想法。

我首先创建了一个演示档案:

cd /tmp
mkdir demo
for i in {1..100}; do echo $i > "demo/$i.txt"; done
cd demo && tar cfJ ../demo.tar.xz * && cd ..

demo.tar.xz现在包含100个txt文件。

以下列出了存档的内容,选择第一个文件并将存档中的路径存储到变量firstfile中:

 firstfile=`tar -tvf demo.tar.xz | grep -Po  -m1  "(?<=:[0-9]{2} ).*$"`

echo $firstfile将输出1.txt

您现在可以从存档中提取此单个文件:

tar xf demo.tar.xz $firstfile