当前位置: 首页 > news >正文

压缩与归档命令

压缩与归档

一、压缩解压

常用命令:tar、zip、unzip、gzip、gunzip

1、tar

(1)、命令简介

tar (Tape ARchive) 是 Linux/Unix 系统中最常用的归档工具,用于将多个文件或目录打包成一个文件(通常称为 tarball),并可配合压缩工具进行压缩。

(2)、命令选项清单

#命令语法:tar [选项] [归档文件] [文件或目录...]
#选项			说明
-c			创建新的归档文件
-x			从归档文件中提取文件
-t			列出归档文件中的内容
-v			显示详细处理信息
-f			指定归档文件名
-z			通过 gzip 压缩/解压
-j			通过 bzip2 压缩/解压
-J			通过 xz 压缩/解压
-C			解压到指定目录
-r			向归档文件追加文件
-u			仅添加比归档中更新的文件
-p			保留文件权限属性
--exclude	排除指定文件/目录

(3)、常用命令示例

创建归档文件

#基本打包
tar -cvf archive.tar file1 file2 dir1
#打包并压缩
# gzip 压缩 (通常扩展名为 .tar.gz)
tar -czvf archive.tar.gz file1 dir1
# bzip2 压缩 (通常扩展名为 .tar.bz2)
tar -cjvf archive.tar.bz2 file1 dir1
# xz 压缩 (通常扩展名为 .tar.xz)
tar -cJvf archive.tar.xz file1 dir1

查看归档内容

tar -tvf archive.tar
tar -tzvf archive.tar.gz  # 查看压缩的归档

解压归档文件

#基本解压
tar -xvf archive.tar
#解压到指定目录
tar -xvf archive.tar -C /target/directory
#解压压缩的归档
# gzip 压缩的归档
tar -xzvf archive.tar.gz
# bzip2 压缩的归档
tar -xjvf archive.tar.bz2
# xz 压缩的归档
tar -xJvf archive.tar.xz

高级用法

#排除特定文件/目录tar -czvf backup.tar.gz --exclude='*.tmp' --exclude='cache/*' /path/to/dir#追加文件到已有归档
tar -rvf archive.tar newfile.txt#仅打包比归档中更新的文件tar -uvf archive.tar *#创建增量备份
# 首次完整备份
tar -g snapshot -czvf full_backup.tar.gz /data
# 后续增量备份
tar -g snapshot -czvf incremental_backup.tar.gz /data

2、zip

(1)、命令简介

zip 是一个广泛使用的跨平台压缩工具,创建的 .zip 文件在 Windows、Linux 和 macOS 上都能直接打开。相比 tar.gz.zip 文件通常不需要额外工具即可在各种系统中解压。

安装 zip/unzip

#Linux (Debian/Ubuntu)
sudo apt-get install zip
#Linux (RHEL/CentOS)
sudo yum install zip
#macOS
brew install zip

(2)、命令选项清单

#命令语法:zip [选项] 压缩文件名.zip 文件或目录...
#选项			说明
-r			递归压缩目录(包含子目录)
-q			静默模式(不显示压缩过程)
-v			详细模式(显示压缩详情)
-m			压缩后删除原文件(相当于移动)
-f			仅更新已更改的文件
-u			更新压缩包(添加新文件或更新已有文件)
-d			从压缩包中删除指定文件
-T			测试压缩包完整性
-l			将 LF 换行符转换为 CRLF(Windows 兼容)
-ll			将 CRLF 换行符转换为 LF(Unix 兼容)-e			加密 ZIP(交互式输入密码)
-P <密码>	直接指定密码(不安全,会记录在历史中)
-0			仅存储(不压缩)
-1			最快压缩(低压缩率)
-6			默认压缩级别
-9			最高压缩率(速度最慢)
-i <模式>	仅包含匹配的文件(如 *.txt)
-x <模式>	排除匹配的文件(如 *.log)
-@			从标准输入读取文件列表(配合 find 使用)-s <大小>	分卷压缩(如 -s 100m 每卷 100MB)
-sp			暂停分卷压缩,等待用户确认
-SFX		创建自解压 ZIP(Windows)
-z			压缩后添加注释
-F			修复损坏的 ZIP 文件
-U			保留符号链接(不跟随)
-y			保留软链接(作为链接存储)
-j		仅存储文件(不保留目录结构)

(3)、常用命令示例

压缩单个文件

zip archive.zip file.txt

压缩多个文件

zip archive.zip file1.txt file2.jpg file3.pdf

压缩整个目录(递归压缩)

zip -r archive.zip directory/

压缩目录但排除某些文件

zip -r archive.zip folder/ -x "*.log" "tmp/*"

仅压缩新文件或修改过的文件

zip -u archive.zip newfile.txt

递归压缩目录(排除 .log 文件)

 zip -r archive.zip folder/ -x "*.log"

最高压缩率加密 ZIP

zip -e -9 secure.zip sensitive_data/

分卷压缩(每卷 500MB)

zip -r -s 500m split_archive.zip large_folder/

仅压缩 .txt 文件

zip archive.zip -i "*.txt"

修复损坏的 ZIP

zip -F broken.zip --out fixed.zip

3、unzip

(1)、命令简介

unzip 是用于解压 .zip 文件的命令行工具,与 zip 命令配合使用。它支持解压、查看 ZIP 文件内容、测试 ZIP 文件完整性等功能。

安装 unzip

#Linux (Debian/Ubuntu)
sudo apt install unzip
#Linux (RHEL/CentOS)
sudo yum install unzip
#macOS
brew install unzip

(2)、命令选项清单

#命令语法:unzip [选项] 压缩包.zip [文件...] [-d 目标目录]
#选项					说明
-d <目录>		解压到指定目录(如 unzip file.zip -d /target)
-o				强制覆盖已有文件(不询问)
-n				不覆盖已有文件
-j				忽略压缩包内目录结构(所有文件解压到同一目录)
-q				静默模式(不显示解压过程)
-v				显示压缩包内文件的详细信息(不解压)
-l				仅列出压缩包内文件(不解压)
-t				测试 ZIP 文件是否损坏(不解压)
-x <文件>		排除某些文件(如 unzip file.zip -x "*.log")
-P <密码>		直接指定密码(不安全,会记录在历史中)
-e(zip 命令)	加密 ZIP(交互式输入密码)

(3)、常用命令示例

解压到当前目录

unzip file.zip

解压到指定目录

unzip file.zip -d /target

强制覆盖已有文件

unzip -o file.zip

仅列出 ZIP 内容

unzip -l file.zip

测试 ZIP 是否损坏

unzip -t file.zip

解压加密 ZIP

unzip -P "password" secure.zip

排除某些文件

unzip file.zip -x "*.tmp" “logs/*”

4、gzip

(1)、命令简介

gzip (GNU zip) 是 Linux/Unix 系统中常用的文件压缩工具,采用 Lempel-Ziv (LZ77) 算法,通常生成 .gz 后缀的压缩文件。与 zip 不同,gzip 主要用于单个文件压缩,而 tar 通常配合 gzip 进行目录压缩。
安装 gzip

#大多数 Linux 发行版已预装,如需安装:
# Debian/Ubuntu
sudo apt install gzip
# RHEL/CentOS
sudo yum install gzip
# macOS (Homebrew)
brew install gzip

(2)、命令选项清单

#命令语法:gzip [选项] 文件名...
#选项			说明
-d			解压文件(等同于 gunzip)
-c			将压缩/解压结果输出到标准输出(不修改原文件)
-f			强制压缩/解压(覆盖已有文件)
-k			保留原始文件(默认会删除原文件)
-l			列出压缩文件的压缩率等信息
-r			递归压缩目录下的所有文件
-v			显示压缩/解压过程详情
-1 到 -9	压缩级别(1最快压缩,9最高压缩率,默认6)
-t			测试压缩文件完整性

(3)、常用命令示例

基本压缩

gzip file.txt       # 生成 file.txt.gz,删除原文件
gzip -k file.txt    # 压缩并保留原文件
gzip -v file.txt    # 显示压缩详情

指定压缩级别

gzip -9 data.db     # 最高压缩率(速度慢)
gzip -1 log.txt     # 最快压缩(压缩率低)

解压文件

gzip -d file.txt.gz  # 解压(删除 .gz 文件)
gunzip file.txt.gz   # 同上
gzip -dk file.gz     # 解压并保留 .gz 文件

查看压缩文件信息

gzip -l file.gz
#输出示例:
text
compressed  uncompressed  ratio uncompressed_name
12345       67890         81.9% file.txt

压缩多个文件

gzip file1.txt file2.txt  # 每个文件单独压缩

递归压缩目录(需配合 find)

find /path/to/dir -type f -exec gzip {} \;

压缩到标准输出(不生成文件)

gzip -c file.txt > file.txt.gz
cat file.txt | gzip > file.txt.gz

测试压缩文件完整性

gzip -t file.gz

压缩后显示压缩率

gzip -v file.txt
输出:
text
file.txt:     81.9% -- replaced with file.txt.gz

解压到指定目录

gzip -dc file.gz > /path/to/newfile

批量解压当前目录所有 .gz 文件

gunzip *.gz

高压缩率 + 保留原文件

gzip -9k large_file.iso

5、gunzip

(1)、命令简介

gunzip 是 gzip 的配套解压工具,用于解压缩由 gzip 压缩的文件(扩展名通常为 .gz.z_z.tgz)。实际上,gunzipgzip -d 是完全等价的命令。

(2)、命令选项清单

#命令语法:gunzip [选项] 文件名.gz
#选项			说明
-c		将解压内容输出到标准输出(屏幕),不修改原文件
-f		强制解压,覆盖已存在的文件
-k		保留压缩文件(默认会删除.gz文件)
-l		显示压缩文件的压缩信息
-r		递归解压目录中的所有.gz文件
-t		测试压缩文件的完整性
-v		显示解压过程的详细信息
-1~-9	设置解压速度/内存使用(极少使用)

(3)、常用命令示例

基本解压

gunzip file.gz  # 解压后会删除file.gz

解压并保留原压缩文件

gunzip -k file.gz

解压到标准输出

gunzip -c file.gz  # 显示解压内容但不生成文件
gunzip -c file.gz > newfile  # 解压到新文件

递归解压目录中的所有.gz文件

gunzip -r directory/

测试压缩文件是否完整

gunzip -t file.gz

显示压缩文件信息

gunzip -l file.gz

批量解压当前目录所有.gz文件

gunzip *.gz
http://www.lryc.cn/news/609885.html

相关文章:

  • Linux 逻辑卷管理
  • Javascript面试题及详细答案150道之(046-060)
  • Redis之Hash和List类型常用命令
  • Dubbo 3.x源码(32)—Dubbo Provider处理服务调用请求源码
  • 《算法导论》第 1 章 - 算法在计算中的作用
  • Java开发时出现的问题---语言特性与基础机制陷阱
  • 从HTTP到WebSocket:打造极速实时通讯体验
  • 安全扫描:目标主机支持RSA密钥交换问题
  • 国产化低代码平台如何筑牢企业数字化安全底座
  • 消防器材检测数据集介绍-9,600 张图片 智慧安防系统 建筑施工安全监管 AI 消防巡检机器人 自动审核系统 公共场所安全监测
  • Solidity全局变量与安全实践指南
  • [论文阅读] 人工智能 + 教学 | 从代码到职业:用机器学习预测竞赛程序员的就业潜力
  • 安全扫描:目标使用过期的TLS1.0 版协议问题
  • 【乐企板式文件】不动产销售类发票已支持
  • MySQL三大日志详解(binlog、undo log、redo log)
  • 赋能未来:数字孪生驱动能源系统智能化升级
  • 【项目实践】在系统接入天气api,根据当前天气提醒,做好plan
  • Linux(centos)安全狗
  • 【芯片设计专用执行单元:PWM如何重塑能源与智能控制】
  • sqli-labs靶场less29~less35
  • 2025.08.04 移除元素
  • 【测试工程思考】测试自动化基础能力建设
  • 使用mybatis生成器生成实体类mapper和查询参数文件,实现简单增删改查。使用log4j输出日志到控制台。使用配置文件注册Bean,配置视图解析器
  • 每天学一个Linux命令(38):vi/vim
  • Excel商业智能分析报表 【销售管理分析仪】
  • 免费MCP: JSON 转 Excel MCP
  • Vim 高效使用指南
  • Flutter 事件总线 Event Bus
  • HarmonyOS 多屏适配最佳实践:基于 ArkUI 的响应式 UI 方案
  • 计算机网络:理解路由的下一跳