您的位置 首页 > 德语词汇

tar是什么意思?用法、例句 tar、gzip、zip、jar是什么,怎么查看?

很多朋友对于tar是什么意思?用法、例句和tar、gzip、zip、jar是什么,怎么查看?不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。

tar是什么意思?用法、例句 tar、gzip、zip、jar是什么,怎么查看?

如果你是后端程序员,我想你一定见过*.tar.gz、*.zip、*.jar后缀的文件吧,这些都是压缩文件,那这些文件都是怎么生成的,又有哪些关键区别呢?本文将带你一起了解这些文件和配套的操作命令,以及其经常使用的场景。

Linux上最常见的压缩文件就是*.tar.gz了,各种开源软件常以这种格式发布源码或程序,所以作为一名后端开发,还是很有必要了解一下的。

首先,可以发现这个文件后缀名有两段,即.tar和.gz,取这个名称也是有原因的,因为它的制作过程就分为两个部分,如下:

#将applogs目录打包为applogs.tar文件\n#其中-c代表打包、-f指定打包文件名\n$tar-cfapplogs.tarapplogs/\n\n#可以发现,打包文件大小与目录占用大小差不多,因为tar仅仅是把目录中文件拼成单个文件,默认并不压缩\n$du-shapplogs/applogs.tar\n177Mapplogs/\n175Mapplogs.tar\n使用gzip将.tar文件压缩为.gz文件

#使用gzip压缩,会生成applogs.tar.gz文件\n$gzip-kapplogs.tar\n\n#可以发现压缩后文件体积明显变小\n$du-shapplogs.tarapplogs.tar.gz\n175Mapplogs.tar\n8.8Mapplogs.tar.gz\n

这就是*.tar.gz文件的制作过程,其实这两步使用tar命令可以简化为一步,如下:

#打包并压缩,其中-z代表打包后再使用gzip压缩\n$tar-czfapplogs.tar.gzapplogs/\n\n#解压到当前目录\n$tar-xzfapplogs.tar.gz-C./\n

压缩日志文件另外,由于日志文件内容一般都有很高重复率,这导致Linux上经常会将后端系统产生的历史日志文件压缩后存储起来,这样可以大幅减低磁盘空间占用。

基于这种情况,Linux上又诞生了一批查看压缩日志文件的命令,如zcat、zgrep、zless等,如下:

#自动解压文件,并将其中文件内容输出\n$zcatapplogs.tar.gz\n\n#自动解压文件,并在其中搜索,用法和grep类似\n$zgrep-a'error'applogs.tar.gz\n

这比傻乎乎地先解压文件,再在文件中搜索要高效多了。

tar与其它压缩算法另外,除了gzip外,tar其实也可以搭配其它压缩算法,像bzip2、xz等等,如下:

-j,--bzip2filterthearchivethroughbzip2\n-J,--xzfilterthearchivethroughxz\n--lzipfilterthearchivethroughlzip\n--lzmafilterthearchivethroughxz\n--lzopfilterthearchivethroughlzop\n-z,--gzip,--gunzip,--ungzipfilterthearchivethroughgzip\n--zstdfilterthearchivethroughzstd\n-Z,--compress,--uncompressfilterthearchivethroughcompress\nzip与jar

zip同样是一种常见的压缩文件格式,后缀是*.zip,与上面tar、gzip不同的是,zip将打包与压缩两个过程融合在一起了,在Linux下对应的操作命令是zip与unzip,如下:

#创建zip压缩文件\n$zip-rapplogs.zipapplogs/\n\n#查看zip压缩文件中有哪些文件\n$unzip-lapplogs.zip\nArchive:applogs.zip\nLengthDateTimeName\n----------------------------\n02022-09-1712:58applogs/\n991662022-09-1618:20applogs/demo.2022-09-16.0.log\n131770922022-09-1713:37applogs/demo.2022-09-17.0.log\n9482022-08-0915:08applogs/demo.log\n...\n----------------\n203039002140files\n\n#解压zip文件,-d指定解压目录\n$unzipapplogs.zip-d./\n

与gzip类似的是,zip也配套了一批方便特定场景使用的命令工具,如zipinfo、zipgrep等,如下:

#zipinfo查看zip文件包含哪些文件\n$zipinfoapplogs.zip\nArchive:applogs.zip\nZipfilesize:9573195bytes,numberofentries:140\ndrwxrwxrwx3.0unx0bxstor22-Sep-1712:58applogs/\n-rwxrwxrwx3.0unx99166txdefN22-Sep-1618:20applogs/demo.2022-09-16.0.log\n-rwxrwxrwx3.0unx13177092txdefN22-Sep-1713:37applogs/demo.2022-09-17.0.log\n-rwxrwxrwx3.0unx948txdefN22-Aug-0915:08applogs/demo.log\n...\n140files,203039002bytesuncompressed,9546235bytescompressed:95.3%\n\n#zipgrep自动解压文件,并在其中搜索,用法和grep类似\n$zipgrep'error'applogs.zip\n

查看jar文件目前,绝大多数java项目都是基于spingboot的,众所周知,spingboot会将项目打包成单个jar文件来部署,但其实jar文件本质上就是zip格式,它相比zip文件只是多了一个META-INF/MANIFEST.MF文件而已,如下:

$unzip-papp.jarMETA-INF/MANIFEST.MF\nManifest-Version:1.0\nSpring-Boot-Classpath-Index:BOOT-INF/classpath.idx\nImplementation-Version:0.0.1-SNAPSHOT\nSpring-Boot-Layers-Index:BOOT-INF/layers.idx\nStart-Class:com.example.demo.DemoApplication\nSpring-Boot-Classes:BOOT-INF/classes/\nSpring-Boot-Lib:BOOT-INF/lib/\nBuild-Jdk-Spec:1.8\nSpring-Boot-Version:2.4.0\nCreated-By:MavenJarPlugin3.2.0\nMain-Class:org.springframework.boot.loader.JarLauncher\n

如上所示,MANIFEST.MF文件指定了jar包的Main-Class,这样当执行java-jarapp.jar时,java就知道去哪个类找main方法了,而spingboot打包的jar,无非就是将启动类换成了自己的而已。

而很多时候,我们需要确认下jar文件里面的内容,比如我想看一下app.jar里被spingboot内嵌的tomcat的线程池配置大小,可如下查看:

$zipgrep'max-thread'app.jar\nBOOT-INF/classes/application.yml:max-threads:500\n

这可比jdk自带的jar命令方便多了,如果你是java开发同学,这个命令应该成为你开发工具箱中的一员。

ok,压缩文件与命令介绍得差不多了,简单总结一下:

less命令其实可以直接打开这些压缩文件,它甚至可以打开png、pdf等广义上的压缩文件!

另外,Linux平台上其实还有一些其它的压缩命令,如bzip2、xz、7z、rar等,就不一一介绍了,感兴趣可查看Linuxman文档。

好了,文章到此结束,希望可以帮助到大家。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023