当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > Linux压缩文件命令大全:生成与查看

Linux压缩文件命令大全:生成与查看

2025-04-17 16:01:37 0浏览 收藏
推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

本文详细介绍Linux系统下常用的压缩文件生成与查看命令,涵盖tar、gzip、zip、jar等多种格式。针对后端开发者,文章重点讲解如何使用`tar`和`gzip`命令生成和解压`.tar.gz`文件,以及如何利用`zcat`、`zgrep`等命令高效查看压缩日志文件。此外,文章还阐述了`zip`、`unzip`命令在创建和解压`.zip`及`.jar`文件中的应用,并提供了使用`zipgrep`命令搜索压缩文件内容的技巧,帮助开发者快速掌握Linux压缩文件操作,提升开发效率。

Linux实现压缩文件的生成与查看的常用命令总结

目录
  • 简介

  • tar与gzip

  • 压缩日志文件

  • tar与其它压缩算法

  • zip与jar

  • 查看jar文件

  • 总结

简介

如果你是一名后端开发者,想必你对*.tar.gz*.zip*.jar后缀的文件并不陌生。这些都是压缩文件,但它们是如何生成的,又有什么关键区别呢?本文将带你深入了解这些文件及其相关的操作命令,以及它们常见的使用场景。

tar与gzip

在Linux系统中,最常见的压缩文件格式是*.tar.gz,许多开源软件以这种格式发布源代码或程序。因此,作为后端开发者,了解这些是非常必要的。

首先,这个文件后缀名有两部分,即.tar.gz,这也是由其制作过程决定的,分为两个步骤,如下:

1.使用tar命令将目录打包成单个.tar文件

<code>#将applogs目录打包为applogs.tar文件
#其中-c代表打包、-f指定打包文件名
$ tar -cf applogs.tar applogs/
<h1>可以发现,打包文件大小与目录占用大小差不多,因为tar仅仅是将目录中的文件组合成单个文件,默认情况下不进行压缩</h1><p>$ du -sh applogs/ applogs.tar
177M    applogs/
175M    applogs.tar
</p></code>

2.使用gzip命令将.tar文件压缩为.gz文件

<code>#使用gzip压缩,会生成applogs.tar.gz文件
$ gzip -k applogs.tar<h1>可以发现压缩后文件体积明显变小</h1><p>$ du -sh applogs.tar applogs.tar.gz
175M    applogs.tar
8.8M    applogs.tar.gz
</p></code>

这就是*.tar.gz文件的制作过程,实际上这两步可以使用tar命令一步完成,如下:

<code>#打包并压缩,其中-z代表打包后再使用gzip压缩
$ tar -czf applogs.tar.gz applogs/<h1>解压到当前目录</h1><p>$ tar -xzf applogs.tar.gz -C ./
</p></code>

压缩日志文件

由于日志文件通常具有很高的重复率,Linux系统经常会将后端系统生成的历史日志文件压缩后存储,以大幅减少磁盘空间占用。

基于这种需求,Linux上开发了一些查看压缩日志文件的命令,如zcat、zgrep、zless等,如下:

<code>#自动解压文件,并将其中文件内容输出
$ zcat applogs.tar.gz<h1>自动解压文件,并在其中搜索,用法和grep类似</h1><p>$ zgrep -a 'error' applogs.tar.gz
</p></code>

这种方法比先解压文件再搜索要高效得多。

tar与其它压缩算法

除了gzip外,tar还可以与其他压缩算法结合使用,如bzip2、xz等,如下:

<code>-j, --bzip2        filter the archive through bzip2
-J, --xz           filter the archive through xz
--lzip             filter the archive through lzip
--lzma             filter the archive through xz
--lzop             filter the archive through lzop
-z, --gzip, --gunzip, --ungzip    filter the archive through gzip
--zstd             filter the archive through zstd
-Z, --compress, --uncompress      filter the archive through compress
</code>

zip与jar

zip同样是一种常见的压缩文件格式,后缀是*.zip,与tar和gzip不同的是,zip将打包与压缩两个过程合二为一。在Linux下对应的操作命令是zipunzip,如下:

<code>#创建zip压缩文件
$ zip -r applogs.zip applogs/<h1>查看zip压缩文件中有哪些文件</h1><p>$ unzip -l applogs.zip
Archive:  applogs.zip
Length      Date    Time    Name</p><hr><pre class="brush:php;toolbar:false"><code>    0  2022-09-17 12:58   applogs/</code>

99166 2022-09-16 18:20 applogs/demo.2022-09-16.0.log 13177092 2022-09-17 13:37 applogs/demo.2022-09-17.0.log 948 2022-08-09 15:08 applogs/demo.log ...


203039002 140 files

解压zip文件,-d指定解压目录

$ unzip applogs.zip -d ./

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

<code>#zipinfo查看zip文件包含哪些文件
$ zipinfo applogs.zip
Archive:  applogs.zip   9573195 bytes   140 files
drwxrwxrwx  3.0 unx        0 bx stor 22-Sep-17 12:58 applogs/
-rwxrwxrwx  3.0 unx   99166 tx defN 22-Sep-16 18:20 applogs/demo.2022-09-16.0.log
-rwxrwxrwx  3.0 unx 13177092 tx defN 22-Sep-17 13:37 applogs/demo.2022-09-17.0.log
-rwxrwxrwx  3.0 unx     948 tx defN 22-Aug-09 15:08 applogs/demo.log
...
140 files, 203039002 bytes uncompressed, 9546235 bytes compressed:  95.3%<h1>zipgrep自动解压文件,并在其中搜索,用法和grep类似</h1><p>$ zipgrep 'error' applogs.zip
</p></code>

查看jar文件

目前,大多数Java项目都是基于Spring Boot的,Spring Boot会将项目打包成单个jar文件来部署,但实际上jar文件本质上就是zip格式,只是多了一个META-INF/MANIFEST.MF文件,如下:

<code>$ unzip -p app.jar META-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: Maven Jar Plugin 3.2.0
Main-Class: org.springframework.boot.loader.JarLauncher
</code>

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

很多时候,我们需要确认jar文件中的内容,比如查看Spring Boot内嵌的Tomcat的线程池配置大小,可以如下查看:

<code>$ zipgrep 'max-thread' app.jar
BOOT-INF/classes/application.yml:max-threads: 500
</code>

这种方法比JDK自带的jar命令方便得多,如果你是Java开发者,这个命令应该成为你开发工具箱中的一员。

总结

好了,关于压缩文件与命令的介绍就到这里了,简单总结一下:

  • tar、gzip:用于打包或解压.tar.gz文件的命令,虽然它们是两个命令,但几乎总是一起使用。
  • zip、unzip:用于打包或解压.zip文件的命令,值得注意的是,它们同样可以处理*.jar文件,且在搜索场景中,使用zipgrep更方便。

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

此外,Linux平台上还有其他一些压缩命令,如bzip2、xz、7z、rar等,这里就不一一介绍了,有兴趣的可以查看Linux man文档。

到此为止,这篇关于Linux实现压缩文件的生成与查看的常用命令总结的文章就介绍到这里了。更多相关Linux压缩文件的内容,请搜索我们之前的文章或继续浏览下面的相关文章,希望大家以后多多支持我们!

好了,本文到此结束,带大家了解了《Linux压缩文件命令大全:生成与查看》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多科技周边知识!

Python代码入门及基本结构指南Python代码入门及基本结构指南
上一篇
Python代码入门及基本结构指南
DebianOpenSSL备份详细教程及方法
下一篇
DebianOpenSSL备份详细教程及方法
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据
    ChatExcel酷表
    ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
    3200次使用
  • Any绘本:开源免费AI绘本创作工具深度解析
    Any绘本
    探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
    3413次使用
  • 可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图
    可赞AI
    可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
    3443次使用
  • 星月写作:AI网文创作神器,助力爆款小说速成
    星月写作
    星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
    4551次使用
  • MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画
    MagicLight
    MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
    3821次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码