



时间:2025-05-16 关注公众号 来源:网络
在Linux操作系统中,高效地管理文件是日常任务之一,而这其中,压缩和解压文件的能力尤为重要。无论是备份数据、减少存储空间使用,还是方便文件传输,掌握正确的命令行工具都是提升工作效率的关键。本文将为您汇总并解析在Linux环境下生成与查看压缩文件的常用命令,包括但不限于tar、gzip、bzip2和xz等。从基础用法到高级技巧,我们将一步步引导您深入了解这些命令的精髓,帮助您在终端操作中更加游刃有余。无论是新手还是经验丰富的Linux用户,都能从中找到提升自己技能的宝贵信息。准备好了吗?让我们一起深入Linux的压缩文件处理世界,揭开其高效管理数据的秘密面纱。
简介
tar与gzip
压缩日志文件
tar与其它压缩算法
zip与jar
查看jar文件
总结
简介如果你是一名后端开发者,想必你对*.tar.gz、*.zip、*.jar后缀的文件并不陌生。这些都是压缩文件,但它们是如何生成的,又有什么关键区别呢?本文将带你深入了解这些文件及其相关的操作命令,以及它们常见的使用场景。
tar与gzip在Linux系统中,最常见的压缩文件格式是*.tar.gz,许多开源软件以这种格式发布源代码或程序。因此,作为后端开发者,了解这些是非常必要的。
首先,这个文件后缀名有两部分,即.tar和.gz,这也是由其制作过程决定的,分为两个步骤,如下:
1.使用tar命令将目录打包成单个.tar文件
#将applogs目录打包为applogs.tar文件 #其中-c代表打包、-f指定打包文件名 $tar-cfapplogs.tarapplogs/$du-shapplogs/applogs.tar 177Mapplogs/ 175Mapplogs.tar 登录后复制
2.使用gzip命令将.tar文件压缩为.gz文件
#使用gzip压缩,会生成applogs.tar.gz文件 $gzip-kapplogs.tar$du-shapplogs.tarapplogs.tar.gz 175Mapplogs.tar 8.8Mapplogs.tar.gz 登录后复制
这就是*.tar.gz文件的制作过程,实际上这两步可以使用tar命令一步完成,如下:
#打包并压缩,其中-z代表打包后再使用gzip压缩 $tar-czfapplogs.tar.gzapplogs/$tar-xzfapplogs.tar.gz-C./ 登录后复制压缩日志文件
由于日志文件通常具有很高的重复率,Linux系统经常会将后端系统生成的历史日志文件压缩后存储,以大幅减少磁盘空间占用。
基于这种需求,Linux上开发了一些查看压缩日志文件的命令,如zcat、zgrep、zless等,如下:
#自动解压文件,并将其中文件内容输出 $zcatapplogs.tar.gz$zgrep-a'error'applogs.tar.gz 登录后复制
这种方法比先解压文件再搜索要高效得多。
tar与其它压缩算法除了gzip外,tar还可以与其他压缩算法结合使用,如bzip2、xz等,如下:
-j,--bzip2filterthearchivethroughbzip2 -J,--xzfilterthearchivethroughxz --lzipfilterthearchivethroughlzip --lzmafilterthearchivethroughxz --lzopfilterthearchivethroughlzop -z,--gzip,--gunzip,--ungzipfilterthearchivethroughgzip --zstdfilterthearchivethroughzstd -Z,--compress,--uncompressfilterthearchivethroughcompress 登录后复制zip与jarzip同样是一种常见的压缩文件格式,后缀是*.zip,与tar和gzip不同的是,zip将打包与压缩两个过程合二为一。在Linux下对应的操作命令是zip与unzip,如下:
#创建zip压缩文件 $zip-rapplogs.zipapplogs/$unzip-lapplogs.zip Archive:applogs.zip LengthDateTIMeName
991662022-09-1618:20applogs/demo.2022-09-16.0.log 131770922022-09-1713:37applogs/demo.2022-09-17.0.log 9482022-08-0915:08applogs/demo.log ...
203039002140files
解压zip文件,-d指定解压目录$unzipapplogs.zip-d./
与gzip类似,zip也配套了一批适用于特定场景的命令工具,如zipinfo、zipgrep等,如下:
#zipinfo查看zip文件包含哪些文件 $zipinfoapplogs.zip Archive:applogs.zip9573195bytes140files drwxrwxrwx3.0unx0bxstor22-Sep-1712:58applogs/ -rwxrwxrwx3.0unx99166txdefN22-Sep-1618:20applogs/demo.2022-09-16.0.log -rwxrwxrwx3.0unx13177092txdefN22-Sep-1713:37applogs/demo.2022-09-17.0.log -rwxrwxrwx3.0unx948txdefN22-Aug-0915:08applogs/demo.log ... 140files,203039002bytesuncompressed,9546235bytescompressed:95.3%$zipgrep'error'applogs.zip 登录后复制查看jar文件
目前,大多数Java项目都是基于SpringBoot的,SpringBoot会将项目打包成单个jar文件来部署,但实际上jar文件本质上就是zip格式,只是多了一个META-INF/MANIFEST.MF文件,如下:
$unzip-papp.jarMETA-INF/MANIFEST.MF Manifest-Version:1.0 Spring-Boot-Classpath-Index:BOOT-INF/classpath.idx Implementation-Version:0.0.1-SNAPSHOT Spring-Boot-Layers-Index:BOOT-INF/layers.idx Start-Class:com.example.demo.DemoApplication Spring-Boot-Classes:BOOT-INF/classes/ Spring-Boot-Lib:BOOT-INF/lib/ Build-Jdk-Spec:1.8 Spring-Boot-Version:2.4.0 Created-By:MavenJarPlugin3.2.0 Main-Class:org.springframework.boot.loader.JarLauncher 登录后复制如上所示,MANIFEST.MF文件指定了jar包的Main-Class,这样当执行java-jarapp.jar时,Java就知道去哪个类找main方法了,而SpringBoot打包的jar,只是将启动类换成了自己的。
很多时候,我们需要确认jar文件中的内容,比如查看SpringBoot内嵌的Tomcat的线程池配置大小,可以如下查看:
$zipgrep'max-thread'app.jar BOOT-INF/classes/application.yml:max-threads:500 登录后复制这种方法比JDK自带的jar命令方便得多,如果你是Java开发者,这个命令应该成为你开发工具箱中的一员。
总结好了,关于压缩文件与命令的介绍就到这里了,简单总结一下:
tar、gzip:用于打包或解压.tar.gz文件的命令,虽然它们是两个命令,但几乎总是一起使用。 zip、unzip:用于打包或解压.zip文件的命令,值得注意的是,它们同样可以处理*.jar文件,且在搜索场景中,使用zipgrep更方便。less命令实际上可以直接打开这些压缩文件,它甚至可以打开png、pdf等广义上的压缩文件!
此外,Linux平台上还有其他一些压缩命令,如bzip2、xz、7z、rar等,这里就不一一介绍了,有兴趣的可以查看Linuxman文档。
到此为止,这篇关于Linux实现压缩文件的生成与查看的常用命令总结的文章就介绍到这里了。更多相关Linux压缩文件的内容,请搜索我们之前的文章或继续浏览下面的相关文章,希望大家以后多多支持我们!
以上就是Linux实现压缩文件的生成与查看的常用命令总结的详细内容,更多请关注其它相关文章!
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站)
电话:13918309914
QQ:1967830372
邮箱:rjfawu@163.com