从 xz 文件中提取文件
extract a file from xz file
我有一个巨大的文件 file.tar.xz
,其中包含许多结构相似的较小文本文件。我想快速检查压缩文件中的文件并瞥见文件内容结构。我没有关于压缩文件中文件名的信息。鉴于上述情况,是否有提取单个文件的方法?
谢谢。
编辑:我不想tar -xvf file.tar.xz
。
根据评论中的讨论,我尝试了以下对我有用的方法。它可能不是最佳解决方案,正则表达式可能需要一些改进,但您会明白的。
我首先创建了一个演示存档:
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
我有一个巨大的文件 file.tar.xz
,其中包含许多结构相似的较小文本文件。我想快速检查压缩文件中的文件并瞥见文件内容结构。我没有关于压缩文件中文件名的信息。鉴于上述情况,是否有提取单个文件的方法?
谢谢。
编辑:我不想tar -xvf file.tar.xz
。
根据评论中的讨论,我尝试了以下对我有用的方法。它可能不是最佳解决方案,正则表达式可能需要一些改进,但您会明白的。
我首先创建了一个演示存档:
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