写点什么

如何在 Linux 中不解压就能查看压缩包中的内容,这 13 个命令非常强!

作者:wljslmz
  • 2022 年 8 月 02 日
  • 本文字数:3101 字

    阅读完需:约 10 分钟

如何在Linux中不解压就能查看压缩包中的内容,这13个命令非常强!

你好,这里是网络技术联盟站。


在 windows 系统中,我们想要查看压缩包的内容非常简单,通过一些压缩软件就能很轻松的实现。


但是在 Linux 系统中该如何查看压缩包中的内容呢?


可能很多小伙伴第一次听说在 Linux 中不解压就查看压缩包内容,其实这种情况非常常见,比如你拿到一个部署包,想要看下这个部署包中有哪些内容,这个时候如果解压的话,一时耗时长、二是容易操作失误,解压缩时乱填路径,导致解压后的文件非常杂乱,所以直接查看非常有必要!


下面我将介绍几个可以直接查看压缩包内容的命令,让我们直接开始!

1、zmore

zmore类似于 linux 中的more命令,more命令用于查看文件的内容,是一页一页的查看。


zmore用于查看 zip、gzip 压缩包,且适用于压缩包中文件数目不多的情况。


我们来举个例子,我们有个名为 wljslmz.zip 的压缩包:



我们提前知道这个 wljslmz.zip 压缩包有一个名为 wljslmz.txt 的文本文件:



我们用命令:


zmore wljslmz.zip
复制代码



命令执行后看到文件内容是wljslmz-1


我们来手动打开这个文件看下:



查看正确无误。


我们再来看一个例子:



/tmp目录下有个名为wljslmz-2.gzip的压缩包,我们通过命令:


zmore wljslmz-2.gzip
复制代码


执行结果:


2、zless

zless 和 zmore 类似,zless 也是类似于 linux 中查看文件的命令less,其实zless就是zipless的结合,用于查看 zip 格式的压缩包内容。


我们来看个例子,还是刚刚 wljslmz.zip 的压缩包,我们用命令:


zless wljslmz.zip
复制代码



此时可以按q键退出。

3、zcat

zcat 命令和上面两个 zmore、zless 类似,就是zipcat命令的集合,我们作为技术人员,得善用 man 命令,我们用man zcat命令看下用法:



我们可以很清晰的看到zcat命令类似于命令gunnzip


zcat 111.gz
复制代码


4、vim

没想到吧,vim 还能查看压缩包内容,一般我们用 vim 命令都是编辑文件,从来还没想过可以查看压缩包内容,其实 vim 不仅仅可以查看 zip 压缩包,还支持查看 tar.xz、tar.bz2、tar、tbz 等压缩包。


比如我们本地有 111.gz、111.tar、111.tar.bz2、111.tar.xz、111.tbz 压缩包,我们通过 vim 命令选一个压缩包查看:


vim 111.gz
复制代码


5、zip 和 unzip

zip 大家熟悉的就是压缩文件了,unzip 大家熟悉的使用场景就是解压缩了,可是你知道吗,配上一些参数,也可以达到查看压缩包内容的效果,不幸咱们来瞅瞅。


zip 不能用于查看文件的内容。


如果你的 Linux 系统中没有安装 unzip 和 zip,可以执行以下命令进行安装。


CentOS/RHEL:


sudo yum install zip unzip
复制代码


ubuntu:


sudo ap-get install zip unzip
复制代码


安装后我们开始操作。

zip

想要 zip 达到不解压就能查看压缩包内容,需要用到参数–sf,比如我们/tmp路径下有个名为tmp.zip的压缩包:



这个压缩包中有三个文件:



分别是:


  • cat.xml

  • template.kml

  • user.xml


现在我们将其扔到 Linux 中,执行以下命令:


zip -sf tmp.zip
复制代码


执行结果:



可以很清晰看到了压缩包中的文件,而且确实如上所说不能查看到文件内容。

unzip

unzip 和 zip 不同,它既可以查看文件列表也可以查看文件的内容.


查看文件列表需要搭配参数-l,还是上面的例子,我们用命令:


unzip -l tmp.zip
复制代码


执行结果:



我们看到了这个命令执行完,可以观察的内容更加丰富,有每个文件的大小、日期、时间、名称,还有压缩包总大小、文件数。


如果想要查看压缩文件中所有文件的内容,可以搭配参数-c


unzip -c tmp.zip
复制代码


执行结果:




这个查看压缩包中所有文件的内容,如果我们想要指定查看某个文件的内容呢?


可以这样使用:


unzip -c tmp.zip filename
复制代码


比如 tmp.zip 中有个文件 cat.xml,我们只想查看这个文件内容,可以使用命令:


unzip -c tmp.zip cat.xml
复制代码


执行结果:


6、zipinfo

zipinfo命令可能大家第一次遇到,不过这个命令确实比骄好用,正如命令本身,zipinfo命令适用于查看 zip 压缩包信息,我们来执行一下看看效果:


zipinfo tmp.zip
复制代码


执行结果:



可以看出zipinfo的命令比unzip -l的命令还要详细,最后一行还显示了压缩前大小信息和压缩后大小信息以及压缩百分比。

7、tar

tar 命令在我们日常使用中也是压缩和解压缩比较多,可是搭配参数也能实现不解压的情况下查看压缩包内容,在操作之前,我们首先用 tar 命令创建一个.tar结尾的包:


root@LAPTOP-GMNG868P:/tmp# echo "java-wljslmz" > java-wljslmz.txtroot@LAPTOP-GMNG868P:/tmp# cat java-wljslmz.txtjava-wljslmzroot@LAPTOP-GMNG868P:/tmp# echo "springboot-wljlsmz" > springboot-wljslmz.txtroot@LAPTOP-GMNG868P:/tmp# cat springboot-wljslmz.txtspringboot-wljlsmzroot@LAPTOP-GMNG868P:/tmp# tar -cvf wljslmz.tar *.txtjava-wljslmz.txtspringboot-wljslmz.txtroot@LAPTOP-GMNG868P:/tmp# lsjava-wljslmz.txt  springboot-wljslmz.txt  tmp.zip  wljslmz.tar
复制代码


如上所示,我们首先创建了两个 txt 文件 java-wljslmz.txt、springboot-wljslmz.txt,然后将其打包成 wljslmz.tar。


tar命令要想达到不解压就能查看压缩包内容,可以搭配-tf参数:


tar -tf wljslmz.tar
复制代码


执行结果:



如果想要看到压缩包中每个文件更加详细的信息,可以再加一个参数-v


tar -tvf wljslmz.tar
复制代码


执行结果:


8、less

what?less也能查看压缩包内容?上面不是介绍了zless查看压缩包内容吗?


其实less也是可以在不解压的情况下查看压缩包内容的,不信咱们瞅瞅。


在操作前,我们还是新建一个压缩包用来测试:


root@LAPTOP-GMNG868P:/tmp# tar cvzf file.tar.gz *.txtjava-wljslmz.txtspringboot-wljslmz.txtroot@LAPTOP-GMNG868P:/tmp# lsfile.tar.gz  java-wljslmz.txt  springboot-wljslmz.txt
复制代码


如上所示,新建了一个 tar.gz 压缩包,压缩包中有两个文件java-wljslmz.txtspringboot-wljslmz.txt


我们执行一下命令:


less file.tar.gz
复制代码


执行结果:



我们可以在此界面进行搜索,跟 vim 界面操作一样/springboot



搜索结果:



很明显,搜索后就能过滤出相关文件了。


在此界面,按q键可以退出。

9、rar 与 unrar

除了 zip 格式、tar 格式、tar.gz 格式的压缩包,还有一种压缩格式也很常见:rar。rar 是俄罗斯人发明的,并且比 zip 格式的压缩比高,但是解压和压缩的速度相对慢一些,这个很好理解,既然是压缩比高,消耗的时间也很长。


rar 命令在 linux 中默认是没有的,我们在使用前需要先安装一下。


先去 winrar 官网下载:


https://www.rarlab.com/download.htm
复制代码



可以看到目前最新版本是 6.12,我们要下载的是 linux 64 位,在控制台执行命令:


wget http://www.rarsoft.com/rar/rarlinux-x64-612.tar.gz
复制代码



解压:


tar -zxf rarlinux-x64-612.tar.gz
复制代码


然后执行命令如下:


root@LAPTOP-GMNG868P:/tmp# tar -zxf rarlinux-x64-612.tar.gzroot@LAPTOP-GMNG868P:/tmp# cd rar/root@LAPTOP-GMNG868P:/tmp/rar# make
复制代码



首先用rar命令压缩一个 rar 文件:


rar a rartest java-wljslmz.txt springboot-wljslmz.txt
复制代码


执行结果:



我们看到是压缩了两个文件java-wljslmz.txtspringboot-wljslmz.txt


现在我们用rar命令在不解压的情况下查看压缩包中的内容,要想达到这种效果,需要在rar命令后面加一个参数l


rar l rartest.rar
复制代码


执行结果:



很清晰的看到,压缩包种列表就能显示出来,并且还展示了每个文件的权限、大小、创建日期、时间、文件名称,压缩包文件的总大小、文件数。


上面是rar命令,我们再来看下unrar命令。


rar命令一样,都是结合l参数:


unrar l rartest.rar
复制代码


执行结果:


总结

不解压查看压缩包内容对于提升 Linux 使用效率帮助非常大,不管是开发人员还是运维人员,这种需求场景非常多,本文瑞哥一共介绍了 13 个命令,分别是:


  • zmore

  • zless

  • zcat

  • vim

  • zip

  • unzip

  • zip

  • unzip

  • zipinfo

  • tar

  • less

  • rar

  • unrar


每个命令都非常好用,希望大家可以多尝试,不要每次拿到压缩包就解压,第一时间先问问自己想要干啥。


最后感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

发布于: 22 小时前阅读数: 24
用户头像

wljslmz

关注

极致主义者,追求技术的路上,勇往直前! 2021.05.24 加入

订阅号:网络技术联盟站 个站:https://www.wljslmz.cn

评论

发布
暂无评论
如何在Linux中不解压就能查看压缩包中的内容,这13个命令非常强!_Linux_wljslmz_InfoQ写作社区