如何只查看tar.gz压缩文件中顶层目录的列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何只查看tar.gz压缩文件中顶层目录的列表相关的知识,希望对你有一定的参考价值。

参考技术A .bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

如何在不解压缩内容的情况下查看 .tar.gz 存档中特定文件的内容?

【中文标题】如何在不解压缩内容的情况下查看 .tar.gz 存档中特定文件的内容?【英文标题】:how to see the content of a particular file in .tar.gz archive without unzipping the contents? 【发布时间】:2010-07-30 08:16:27 【问题描述】:

for ex abc.tar.gz 有

abc/file1.txt abc/file2.txt abc/abc1/file3.txt abc/abc2/file4.txt

我需要在不提取文件的情况下读取/显示 file3.txt 的内容。

感谢您的任何意见。

【问题讨论】:

我还以为是同一回事...您的意思是您不想将其解压缩到磁盘上的文件中吗? 不压缩文件是一个大文件,里面有太多文件夹和文件,我没有足够的空间/使用整个未压缩的文件,我也不需要特定文件的全部内容tar.gz.我发现 ans 虽然 tar -xzf file.tar.gz -O file/particularfile.txt 和管道到 csplit 的模式。谢谢! 【参考方案1】:
import tarfile
spam = tarfile.open( "abc.tar.gz" )
if "abc/abc1/file3.txt" in spam.getnames():
    with spam.extractfile( "abc/abc1/file3.txt" ) as ham:
        print ham.read()

见tarfile。

【讨论】:

感谢 ans,但我的投票投给了 bash,因为我很容易通过管道查找特定文件上的模式。 很公平——尽管你可以在 python 中做同样的事情; getnames 返回存档中可以搜索/分析的文件数组。问题被标记为python,顺便说一句,有什么特别的原因吗? =p【参考方案2】:
tar -xzf mytar.tar.gz --to-command=cat filename.in.archive

【讨论】:

你的回答帮助了。我在特定文件中寻找一些模式。到 csplit 的管道帮助我 tar -xzf file.tar.gz -O file/file.txt |csplit -s - "/regex /" no_of_times > /dev/null 谢谢

以上是关于如何只查看tar.gz压缩文件中顶层目录的列表的主要内容,如果未能解决你的问题,请参考以下文章

Linux压缩和解压缩命令

linux 查看压缩包里文件用啥命令

如何把文件压缩成tar.gz

tar.gz压缩,查看,解压

linux下如何查看文件的压缩类型,用啥命令解压

linux 中如何解压文件(比如.tar.gz 用tar