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。

创建压缩的 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.mfbz.cn/a/598786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Amazon Q Business现已正式上市!利用生成式人工智能协助提高员工生产力

在 2023 年度 AWS re:Invent 大会上,我们预览了 Amazon Q Business,这是一款基于生成式人工智能的助手,可以根据企业系统中的数据和信息回答问题、提供摘要、生成内容额安全地完成任务。 借助 Amazon Q Business,您可以部署安全、…

Java多线程编程之synchronizaed和锁分类

并发编程第三周 1 锁的分类 1.1 可重入锁,不可重入锁 Java提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁 可重入:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。 不可重入:当前线程…

python使用mongo操作

目前有个需求,就是把所有sql转为mongo管道查询 知识点 在 MongoDB 中,allowDiskUse 选项应该作为聚合命令的一个选项,而不是聚合管道的一个阶段。allowDiskUse 选项用于允许聚合操作使用磁盘空间来临时存储数据(当聚合操作的数据…

[leetcode] 67. 二进制求和

文章目录 题目描述解题方法模拟java代码复杂度分析 相似题目 题目描述 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a "11", b "1" 输出:"100"示例 2: 输…

串的模式匹配之KMP算法实现

概述 函数刻画 主串位置不变,next值就是模式串(子串)比较后应跳转的位置 不同位置 next[j]函数 next由模式串决定,看模式串当前比较位的前串中前后缀相同的个数来得k-1的值,next[当前位]k1 小补充 PM值:也称部分匹配值&#xf…

产品推荐 | 基于Intel (Altera) Cyclone V打造的水星Mercury SA1核心板

01 产品概述 水星Mercury SA1片上系统(SoC)核心板通过结合基于ARM处理器的SoC FPGA、快速DDR3L SDRAM、eMMC flash、QSPI flash、Gigabit Ethernet PHY和RTC形成了一个高性能嵌入式处理方案,结合了CPU系统的灵活性和FPGA原始的、实时的并行处…

EXCEL——VLOOKUP函数

一、VLOOKUP函数的语法 VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) lookup_value 需要在数据表首列进行搜索的值,可以是数值,引用或字符串 table_array 要在其中搜索数据的文字、数字或逻辑值表,可以是对区域或…

自动化测试再升级,大模型与软件测试相结合

近年来,软件行业一直在迅速发展,为了保证软件质量和提高效率,软件测试领域也在不断演进。如今,大模型技术的崛起为软件测试带来了前所未有的智能化浪潮。 软件测试一直是确保软件质量的关键环节,但传统的手动测试方法存…

阿里巴巴中国站关键字搜索API返回值全攻略:精准定位所需商品

当使用阿里巴巴中国站的关键字搜索API时,理解其返回值的结构和内容对于精准定位所需商品至关重要。以下是一份全面的攻略,帮助你更好地利用这个API: 在商品列表中,每个商品对象都包含丰富的信息,以帮助你精准定位所需商…

shell常用文件处理命令

1. 解压 1.1 tar 和 gz 文件 如果你有一个 .tar 文件,你可以使用以下命令来解压: tar -xvf your_file.tar在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。 如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下…

PDF文档如何签名?用Adobe信任的文档签名证书

为PDF文档电子签名的方式有多种多样,但并非所有方案都是可靠的。我们在市面看到的电子图章、电子印章等仅在文档中置入印章图片的方式,并不具有任何法律上的有效性,它只是显示印章的图形效果,随时可以被篡改、伪造。PDF文档如何签…

煤矿设备故障ar远程诊断系统缩短时间

深圳华锐视点,一家专注于AR增强现实技术服务的创新型企业,致力于为电商、金融、快消、文创等众多行业赋予AR超能力。我们坚信,AR技术不仅是现实的延伸,更是未来生活的引领者。 在现实与虚拟交织的AR世界中,我们全面开启…

安泰ATA-309C:功率放大器的分类及区别是什么

功率放大器是一种电子器件,用于将低功率信号放大到更高功率,以驱动负载或增强信号强度。功率放大器根据其工作原理、电路拓扑和应用领域的不同,可以分为多种类型。下面将介绍几种常见的功率放大器分类及其区别。 A类功率放大器:A类…

实战Java虚拟机-基础篇

一、基础篇-Java内存区域 1.运行时数据区 运行时数据区-总览 Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。 《Java虚拟机规范》中规定了每一部分的作用。 1.程序计数器 程序计数器(Program Counter Register)也叫…

鸿蒙——即将是国内全部物联网的搭载系统

国内物联网时代 中国国内物联网时代是指在中国国内,物联网(Internet of Things,简称IoT)技术得到广泛应用和发展的时代。在这个时代,各种设备和物品都可以通过互联网进行连接和交互,实现信息的采集、传输和…

教程分享:如何为跨境电商、外贸、国际展会制作二维码?

不论是做跨境电商、在全球做产品推广,还是国外的餐厅运营、参加国际展会,或者是做创意户外广告、制作个性化的个人名片、有趣的产品包装……只要是在国外使用二维码,你都可以在QR Tiger去制作您需要的二维码! 一、认识QR Tiger 二…

读源码系列文章--开源项目openjob之alarm告警模块

一、背景 告警模块,作为大多数应用都存在的一个基础功能,今天我们就以开源项目openjob 为例,分析其设计及实现。 首先,我们梳理一下需求: 支持多种告警方式,包括钉钉、飞书、微信和webhook。方便业务模块…

C++实现二叉搜索树(模型)

目录 1.二叉搜索树的概念 2.二叉搜索树的实现 2.1总体代码预览 2.2各个函数实现原理 链表结构体 二叉搜索树的成员变量 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的遍历 二叉搜索树的删除 1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树&#…

CSS中文本样式(详解网页文本样式)

目录 一、Text介绍 1.概念 2.特点 3.用法 4.应用 二、Text语法 1.文本格式 2.文本颜色 3.文本的对齐方式 4.文本修饰 5.文本转换 6.文本缩进 7.color:设置文本颜色。 8.font-family:设置字体系列。 9.font-size:设置字体大小。…

做好源代码防泄密的10条准则

#深度好文计划# 近年来,电脑以及互联网应用在中国的普及和发展,已经深入到社会每个角落, 政府,经济,军事,社会,文化和人们生活等各方面都越来越依赖于电脑和网络。企业需要花费大量的时间精力去…
最新文章