Liunx打包压缩

       注:只用记忆tar和gzip,zip/unzip三种命令与常用参数使用方式,其他做为了解

目录

压缩与打包的概念

常用的压缩与打包工具

tar

gzip

bzip2

xz

速记总结

1.使用 tar 进行打包

2.使用 tar 结合压缩工具

3.解压缩与解打包

其他压缩工具(zip)


        在 Linux 上,可以使用多种工具来打包和压缩文件和目录。以下是 Linux 上常用的压缩和打包工具以及它们的用法:

压缩与打包的概念

  • 压缩 指的是将数据以较小的尺寸存储。常见的压缩格式有 gzip、bzip2、xz 、zip等。
  • 打包 指的是将多个文件和目录合并为一个文件,常用的工具是 tar。

常用的压缩与打包工具

tar

tar 用于打包文件和目录。它也可以与压缩工具结合使用以创建压缩的归档文件。tar 支持多种格式,如 .tar.gz.tar.bz2.tar.xz 等。

  • -c: 创建新的归档。
  • -x: 提取(解压缩)归档。
  • -v: 显示操作的详细信息(verbose)。
  • -f: 指定归档文件的文件名。
  • -t: 列出归档中的文件。
  • -z: 使用 gzip 压缩/解压缩。
  • -j: 使用 bzip2 压缩/解压缩。
  • -J: 使用 xz 压缩/解压缩。
  • -C: 指定提取归档的目标目录。
  • -r: 向现有归档中添加文件。
  • -u: 更新现有归档中的文件。
  • -d: 删除归档中的文件。
创建普通 tar 归档# 创建一个不压缩的 tar 归档
tar -cvf archive.tar file1 file2 dir1
这个命令会将 file1、file2 和 dir1 打包成 archive.tar。指定输出目录
如果要将压缩文件保存到特定目录,可以使用 gzip -c 选项,将压缩内容输出到标准输出,然后使用重定向将其写入到指定目录。
# 将压缩后的内容保存到特定目录
gzip -c myfile.txt > /path/to/destination/myfile.txt.gz#-c: 使用 gzip 压缩并输出到标准输出。
#> /path/to/destination/myfile.txt.gz: 将输出重定向到指定目录和文件名。创建压缩的 tar.gz 归档# 创建一个 gzip 压缩的 tar 归档
tar -czvf archive.tar.gz file1 file2 dir1
这个命令会创建一个 gzip 压缩的归档 archive.tar.gz。解压缩和提取归档
解压缩普通 tar 归档# 提取不压缩的 tar 归档
tar -xvf archive.tar
这个命令会解包 archive.tar 并在当前目录提取内容。解压缩 tar.gz 归档# 提取 gzip 压缩的 tar 归档
tar -xzvf archive.tar.gz
列出归档内容# 列出 tar 归档中的文件
tar -tvf archive.tar
这个命令会列出 archive.tar 中的所有文件。解压缩到指定目录# 将 tar 归档解压缩到指定目录
tar -xvf archive.tar -C /path/to/destination
这个命令会将 archive.tar 中的内容提取到指定的 /path/to/destination 目录。排除某些文件或目录# 创建归档时排除某个目录
tar -czvf archive.tar.gz dir1 --exclude="dir1/ignore_this"
这个命令会创建 archive.tar.gz,但排除 dir1/ignore_this 目录。更新归档# 更新现有 tar 归档
tar -uvf archive.tar new_file
这个命令会向 archive.tar 中添加 new_file。
gzip

gzip 是一种广泛使用的压缩工具,创建 .gz 文件。它通常与 tar 结合使用,形成 .tar.gz 压缩档。

  • -c: 将压缩输出到标准输出,而不是覆盖原文件。常用于管道操作。
  • -d: 解压缩 .gz 文件。
  • -f: 强制覆盖现有文件,不提示。
  • -k: 压缩时保留原文件。
  • -v: 显示压缩或解压缩的详细信息(verbose)。
  • -r: 递归压缩目录中的文件。
  • --best: 使用最大压缩比。
  • --fast: 使用最小压缩比,速度更快。
压缩文件# 压缩单个文件
gzip myfile.txt
这会将 myfile.txt 压缩成 myfile.txt.gz,原文件被替换。保留原文件# 压缩并保留原文件
gzip -k myfile.txt
这个命令会创建 myfile.txt.gz,但保留原来的 myfile.txt。压缩目录中的所有文件# 递归压缩目录中的所有文件
gzip -r mydirectory/
这个命令会压缩 mydirectory 目录中的所有文件,并将它们替换为 .gz 文件。gzip 解压缩操作
解压缩 .gz 文件# 解压缩单个文件
gzip -d myfile.txt.gz
这个命令会将 myfile.txt.gz 解压缩为 myfile.txt。使用 gunzip 解压缩# 使用 gunzip 解压缩
gunzip myfile.txt.gz
gunzip 是 gzip 的解压缩工具,它的效果与 gzip -d 相同。使用 gzip 管道
由于 -c 选项可以将输出发送到标准输出,因此可以使用管道将压缩数据直接传递给其他命令。# 使用 gzip 压缩文件并通过管道发送
gzip -c myfile.txt > compressed.gz
这个命令会压缩 myfile.txt 并将压缩后的数据写入 compressed.gz。其他常见参数
强制覆盖# 使用 -f 强制覆盖现有文件
gzip -f myfile.txt
显示详细信息# 使用 -v 显示压缩信息
gzip -v myfile.txt
使用最佳压缩比# 使用最佳压缩比
gzip --best myfile.txt
使用最小压缩比# 使用最小压缩比
gzip --fast myfile.txt

bzip2

bzip2 是一种压缩效率高于 gzip 的工具,创建 .bz2 文件,通常与 tar 结合,形成 .tar.bz2

  • -c: 将压缩或解压缩输出发送到标准输出(常用于管道操作)。
  • -d: 解压缩 .bz2 文件。
  • -k: 压缩时保留原文件。
  • -v: 显示详细信息(verbose),包括压缩率等。
  • -f: 强制覆盖现有文件。
  • -t: 测试压缩文件的完整性。
  • -q: 安静模式,抑制非必要输出。
压缩单个文件# 压缩 myfile.txt 到 myfile.txt.bz2
bzip2 myfile.txt
这会将 myfile.txt 压缩成 myfile.txt.bz2,原文件会被替换。保留原文件# 压缩并保留原文件
bzip2 -k myfile.txt
这个命令会创建 myfile.txt.bz2,但保留原来的 myfile.txt。使用标准输出# 将压缩输出发送到标准输出
bzip2 -c myfile.txt > myfile.txt.bz2
这个命令将 myfile.txt 压缩到 myfile.txt.bz2,原文件保持不变。使用 bzip2 解压缩文件
解压缩单个文件# 解压缩 myfile.txt.bz2
bzip2 -d myfile.txt.bz2
这个命令会解压缩 myfile.txt.bz2 并将其还原为 myfile.txt。使用 bunzip2# 使用 bunzip2 解压缩
bunzip2 myfile.txt.bz2
bunzip2 是 bzip2 的解压缩工具,它的作用与 bzip2 -d 相同。显示详细信息# 显示压缩率等详细信息
bzip2 -v myfile.txt
这个命令会显示压缩后的文件信息,包括压缩率。强制覆盖现有文件# 使用 -f 强制覆盖
bzip2 -f myfile.txt
如果 myfile.txt.bz2 已存在,使用 -f 参数会强制覆盖。测试压缩文件的完整性# 测试压缩文件的完整性
bzip2 -t myfile.txt.bz2
这个命令会测试 myfile.txt.bz2 的完整性,以确保文件没有损坏。安静模式# 使用 -q 进入安静模式
bzip2 -q myfile.txt

xz

xz 是一种高压缩率的工具,创建 .xz 文件,与 tar 结合后形成 .tar.xz

  • -c: 将输出发送到标准输出,而不是覆盖原文件。
  • -d: 解压缩文件。
  • -k: 压缩时保留原文件。
  • -f: 强制覆盖现有文件。
  • -v: 显示详细信息(verbose)。
  • -t: 测试压缩文件的完整性。
  • --best: 使用最大压缩比。
  • --fast: 使用最小压缩比,压缩速度更快。
压缩单个文件# 压缩 myfile.txt 到 myfile.txt.xz
xz myfile.txt
这个命令会将 myfile.txt 压缩成 myfile.txt.xz,原文件会被替换。保留原文件# 压缩并保留原文件
xz -k myfile.txt
这个命令会创建 myfile.txt.xz,同时保留原来的 myfile.txt。使用标准输出# 压缩并通过标准输出传输
xz -c myfile.txt > compressed.txt.xz
这个命令会压缩 myfile.txt,并将输出发送到 compressed.txt.xz。使用 xz 解压缩文件
解压缩单个文件# 解压缩 myfile.txt.xz
xz -d myfile.txt.xz
这个命令会解压缩 myfile.txt.xz 并将其还原为 myfile.txt。使用 unxz# 使用 unxz 解压缩
unxz myfile.txt.xz
unxz 是 xz 的解压缩工具,效果与 xz -d 相同。显示详细信息# 显示压缩的详细信息
xz -v myfile.txt
这个命令会显示压缩或解压缩的详细信息,包括压缩率和压缩时间。测试压缩文件的完整性# 测试压缩文件的完整性
xz -t myfile.txt.xz
这个命令会测试 myfile.txt.xz 的完整性,确保文件没有损坏。强制覆盖# 使用 -f 强制覆盖
xz -f myfile.txt
这个命令会强制覆盖已存在的 myfile.txt.xz。使用最大压缩比# 使用最大压缩比
xz --best myfile.txt
这个命令会使用最大压缩比,尽可能压缩 myfile.txt。使用最小压缩比# 使用最小压缩比
xz --fast myfile.txt

速记总结

 gzip,bzip2,xz对比:

1.压缩比:  xz > bzip2 > gzip   (即xz压缩的最小)

2.速度:      gzip  > bzip2 > xz   (即压缩的最小的用的时间较长)

3.资源消耗:xz > bzip2 > gzip   (压缩越小的耗费的资源较多)

4.gzip和bzip2,xz都可以结合tar使用

5.三种压缩方式压缩后原文件会被替换,如果需要保留原文件需要加-k, 但是要结合tar的压缩是不需要-k参数的,结合拉tar会默认保留原文件。

6.gzipxzbzip2 通常用于压缩单个文件,而不是目录。如果是目录,需要结合tar使用。

7.使用zip压缩与unzip解压时,原文件都会存在。

1.使用 tar 进行打包

# 将多个文件和目录打包为一个 tar 文件 
tar -cvf archive.tar file1 file2 dir1
  • -c: 创建新的归档。
  • -v: 显示操作的详细信息。
  • -f: 指定归档文件名。

2.使用 tar 结合压缩工具

# 创建一个 gzip 压缩的 tar 文件 
tar -czvf archive.tar.gz file1 file2 dir1 
# 创建一个 bzip2 压缩的 tar 文件 
tar -cjvf archive.tar.bz2 file1 file2 dir1 
# 创建一个 xz 压缩的 tar 文件 
tar -cJvf archive.tar.xz file1 file2 dir1
  • -z: 使用 gzip 压缩。
  • -j: 使用 bzip2 压缩。
  • -J: 使用 xz 压缩。

3.解压缩与解打包

# 解包一个普通的 tar 文件
tar -xvf archive.tar# 解压缩并提取一个 gzip 压缩的 tar 文件 
tar -xzvf archive.tar.gz 
# 解压缩并提取一个 bzip2 压缩的 tar 文件 
tar -xjvf archive.tar.bz2 
# 解压缩并提取一个 xz 压缩的 tar 文件 
tar -xJvf archive.tar.xz
  • -x: 解打包/提取归档内容。

其他压缩工具(zip)

  • zipunzip: 用于创建和解压缩 ZIP 文件。常用于与 Windows 兼容的压缩格式。
# 创建一个 zip 文件 
zip archive.zip file1 file2 dir1 
# 解压缩 zip 文件 
unzip archive.zip

zip参数 :

  • -r: 递归压缩目录及其内容。
  • -e: 对 ZIP 文件进行加密。
  • -9: 使用最佳压缩比。
  • -0: 不进行压缩,仅打包。
  • -q: 安静模式,减少输出信息。
  • -j: 不保存目录结构,将所有文件扁平化。
  • -x: 排除某些文件或目录。
压缩单个文件# 将 myfile.txt 压缩为 myarchive.zip
zip myarchive.zip myfile.txt
这个命令会将 myfile.txt 压缩到 myarchive.zip。递归压缩目录# 递归压缩目录
zip -r myarchive.zip mydirectory/
这个命令会将 mydirectory 目录及其所有子目录和文件压缩到 myarchive.zip。不保存目录结构# 扁平化压缩,不保存目录结构
zip -j myarchive.zip mydirectory/*
这个命令会将 mydirectory 中的文件压缩到 myarchive.zip,但不会保留目录结构。加密 ZIP 文件# 压缩并加密 ZIP 文件
zip -e myarchive.zip myfile.txt
这个命令会要求输入密码,并加密 ZIP 文件。排除某些文件# 压缩时排除特定文件
zip -r myarchive.zip mydirectory/ -x "mydirectory/exclude_this/*"
这个命令会将 mydirectory 中的文件和子目录压缩到 myarchive.zip,但排除 exclude_this 目录及其内容。

unzip参数:

  • -d: 指定解压缩目录。
  • -q: 安静模式。
  • -l: 列出 ZIP 文件中的内容。
  • -o: 强制覆盖现有文件。
  • -n: 不覆盖现有文件。
  • -t: 测试 ZIP 文件的完整性
解压缩到当前目录# 解压缩 ZIP 文件到当前目录
unzip myarchive.zip
这个命令会将 myarchive.zip 的内容解压缩到当前目录。指定解压缩目录# 解压缩到指定目录
unzip myarchive.zip -d /path/to/destination
这个命令会将 myarchive.zip 解压缩到指定目录。列出 ZIP 文件内容# 列出 ZIP 文件中的内容
unzip -l myarchive.zip
这个命令会列出 myarchive.zip 中的文件和目录。测试 ZIP 文件的完整性# 测试 ZIP 文件的完整性
unzip -t myarchive.zip
这个命令会检查 ZIP 文件是否损坏或不完整。强制覆盖或不覆盖# 强制覆盖现有文件
unzip -o myarchive.zip# 不覆盖现有文件
unzip -n myarchive.zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot+Vue项目-基于Java+MySQL的影院订票系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

生成gitee公钥

1、打开设置 2、设置SSH公钥 3、生成公钥 4、复制终端输出的公钥,放到这里,标题随便取。 5、测试 ssh -T gitgitee.com 最后用这个测试

帆软报表实现填报报表

我们拿emp表举例 登记信息表 设计一个报表实现对emp表员工的登记 (emp表为ORACLE自带用户scott下的一个表) 首先,我们设计好填报界面,新建一个普通报表,将emp表中需要的输入一一回应填写进表中。 如下图所示&#xf…

var、let、const的区别

在JavaScript中,var、let、const都是用来声明变量的关键字,但它们之间存在一些关键的区别,这些差异主要体现在作用域、变量提升、重复声明和值的可变性等方面: var 作用域: var声明的变量具有函数作用域或全局作用域。在函数内部…

区块链扩容:水平扩展 vs.垂直扩展

1. 引言 随着Rollups 的兴起,区块链扩容一直集中在模块化(modular)vs. 整体式(monolithic)之争。 如今,模块化与整体式这种一分为二的心理模型,已不适合于当前的扩容场景。本文,将展…

ASP.NET MVC企业级程序设计 (入住退房,删除)

目录 效果图 实现过程 控制器代码 DAL BLL Index 效果图 实现过程 控制器代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc;namespace MvcApplication1.Controllers {public class HomeController …

大厂Java面试题:MyBatis中有几种加载映射器(Mapper.xml)的方式?

大家好,我是王有志。 今天给大家带来的是一道来自京东的 MyBatis 面试题:MyBatis 中有几种加载映射器(Mapper.xml)的方式? 常见加载 MyBatis 映射器的方式有 5 种,可以根据不同的使用方式来进行具体区分&…

【linux-IMX6ULL中断配置流程】

目录 1. Cortex-A7和GIC中断概述1. 1 Cortex-A7中断系统:1. 2 GIC中断控制器简介: 2. 中断配置概述3. 底层中断文件配置3.1 对启动文件.s的配置思路3.2 对中断函数配置思路 4. 上层中断配置流程 1. Cortex-A7和GIC中断概述 学习IMX6UL的中断处理系统&…

Git同步代码

Git中5个区,和具体操作? 代码提交和同步代码 代码撤销和撤销同步 平时是怎么提交代码的? 第零步: 工作区与仓库保持一致第一步: 文件增删改,变为已修改状态第二步: git add ,变为已暂存状态 $ git status $ git a…

1天搞定SpringBoot+Vue全栈开发 (8)前端路由VueRouter(进行组件切换)

1.VueRouter安装与使用 2.参数传递 创建路由组件 在项目中定义Discover.vue、Friends.vue、My.vue三个组件&#xff0c;将来要使用vue-router来控制它们的展示与切换&#xff1a; Discover.vue <template><div><h1>发现音乐</h1></div> <…

智能实训-wheeltec小车-抓取(源代码)

语言 :C 源代码&#xff1a; #include <ros/ros.h> #include <image_transport/image_transport.h> #include <cv_bridge/cv_bridge.h> #include <sensor_msgs/image_encodings.h> #include <sensor_msgs/JointState.h> #include <geometry…

面试题:String类型长度有限制吗?最大多少?

简介 Java中String是有长度限制的。String还有长度限制?是的有,而且在JVM编译中还有规范,String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,我们分析下。 …

代码随想录-算法训练营day28【回溯算法04:复原IP地址、子集】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 28 第七章 回溯算法 ● 93.复原IP地址 ● 78.子集 ● 90.子集II 详细布置 93.复原IP地址 本期本来是很有难度的&#xff0c;不过 大家做完 分割回文串 之后&#xff0c;本题就容易很多了 题目链接/文章讲解&#x…

crossover怎么打开软件 mac怎么下载steam crossover下载的软件怎么运行

CrossOver是一款Mac和Linux平台上的类虚拟机软件&#xff0c;通过CrossOver可以运行Windows的可执行文件。如果你是Mac用户且需要使用CrossOver&#xff0c;但是不知道CrossOver怎么打开软件&#xff0c;如果你想在Mac电脑上玩Windows游戏&#xff0c;但不知道怎么下载Steam&am…

2-5 任务:打印九九表

本次实战的目标是通过编写程序实现打印九九乘法表、字符矩形、字符平行四边形和字符菱形等图形&#xff0c;以及解决百钱买百鸡问题和输出素数等实际问题。在实战过程中&#xff0c;我们将学习并掌握以下知识点。 双重循环的使用&#xff1a;通过双重循环实现九九乘法表的打印&…

代码版本管理:提升团队协作效率的利器

在软件开发过程中&#xff0c;代码版本管理是一个至关重要的环节。它不仅能够有效管理代码的变更历史&#xff0c;还能提高团队协作效率、保证代码质量、降低风险。本文将介绍两种常用的代码版本管理工具&#xff1a;Git 和 Subversion&#xff08;SVN&#xff09;&#xff0c;…

RTSP和RTP/UDP有什么区别

RTSP&#xff08;Real Time Streaming Protocol&#xff09;和RTP&#xff08;Real-time Transport Protocol&#xff09;结合UDP&#xff08;User Datagram Protocol&#xff09;在流媒体传输中各自扮演着不同的角色&#xff0c;并存在显著的差异。以下是它们之间的主要区别&a…

Vue 过渡

点击按钮 控件背景颜色简单过渡变更。 <style> /* 过渡 */.transtion {transition: 3s background-color ease;}.blue {background-color: blue;}.green {background-color: green;}</style><body><div id"root"></div> </body>…

怎么把图片尺寸在线修改?5种方法调整方式介绍

在日常生活和工作中&#xff0c;我们经常遇到需要调整图片尺寸的情况&#xff0c;无论是为了适应自媒体文章内容中的图片、还是上传社交媒体平台要求&#xff0c;调整图片尺寸是一项非常有用的技能。在本教程中&#xff0c;我们将介绍几个方便快捷的图片处理工具&#xff0c;帮…

如何让CANoe或Wireshark自动解析应用层协议

当我们使用CANoe软件或Wireshark工具抓取以太网总线上的报文时,网卡首先会把以太网总线上的模拟信号解析成以太网帧数据。数据链路层根据二层头部中的Type字段值确定上层的协议。 如果以太网使用的是TCP/IP协议栈,那么Type值要么是0x0800(IPv4),要么是0x0806(ARP),要么是0x…