linux常用命令(4)——压缩命令

博客主页:christine-rr-CSDN博客

​​​​​ ​​

hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令------压缩

linux常用命令------压缩


目录

1. tar 文件打包/解压

tar 本身是 打包工具 (将多个文件 / 目录合并为一个 .tar 归档文件),不直接压缩。但它可以结合 gzipbzip2xz 等压缩算法,实现 "打包 + 压缩" 一体操作,生成 .tar.gz.tar.bz2 等常见压缩包。

基本语法:tar [选项] [归档文件名] [要打包/解压的文件/目录]

核心选项(必记)

选项 含义 常用组合
-c 创建 新的归档文件(打包) -v-f 结合(-cvf
-x 提取 归档文件中的内容(解压) -v-f 结合(-xvf
-v 显示 打包 / 解压的详细过程(verbose,可选,方便查看进度) 几乎所有场景都可用
-f 指定 归档文件的名称(必须放在选项的最后,紧跟文件名) -f archive.tar.gz
-z 结合 gzip 算法压缩 / 解压(生成 .tar.gz.tgz -czvf(打包压缩)、-xzvf(解压)
-j 结合 bzip2 算法压缩 / 解压(生成 .tar.bz2 -cjvf-xjvf
-J 结合 xz 算法压缩 / 解压(生成 .tar.xz,压缩率更高,速度较慢) -cJvf-xJvf
-C 解压到 指定目录 (需在 -x 模式下使用) tar -xvf archive.tar -C /tmp/
-t 查看 归档文件中的内容(不解压) tar -tvf archive.tar
--exclude 打包时 排除 指定文件 / 目录 tar -czvf backup.tar.gz --exclude=tmp/ ./data/

常用场景示例

  1. 打包(仅合并,不压缩)

docs/ 目录和 file.txt 打包为 archive.tar

bash 复制代码
tar -cvf archive.tar docs/ file.txt  # -c(创建) -v(显示) -f(指定文件)
  1. 打包 + 压缩(最常用)

(1)gzip 压缩(.tar.gz/.tgz,兼容性最好)

bash 复制代码
tar -czvf backup.tar.gz data/ 	# 打包并压缩 data/ 为 backup.tar.gz
tar -xzvf backup.tar.gz  		# 解压 backup.tar.gz 到当前目录
tar -xzvf backup.tar.gz -C /opt/# 解压到指定目录 /opt/

(2)bzip2 压缩(.tar.bz2,压缩率略高于 gzip)

bash 复制代码
tar -cjvf logs.tar.bz2 /var/log/  # 打包压缩日志目录
tar -xjvf logs.tar.bz2            # 解压

(3)xz 压缩(.tar.xz,压缩率最高,适合大文件)

bash 复制代码
tar -cJvf video.tar.xz movie.mp4  # 压缩大视频文件
tar -xJvf video.tar.xz            # 解压
  1. 查看压缩包内容(不解压)
bash 复制代码
tar -tvf backup.tar.gz  # 查看 .tar.gz 中的文件列表
  1. 排除不需要的文件打包
bash 复制代码
tar -czvf project.tar.gz --exclude=project/temp/ --exclude=project/*.log project/
#打包project/目录,但排除project/temp/和project/*.log

2. zip :文件压缩(跨平台兼容)

zip压缩工具 (同时支持打包 + 压缩),生成的 .zip 文件可在 Windows、macOS 等系统直接解压,兼容性极强。但压缩率通常低于 tar.gztar.xz

基本语法:zip [选项] [压缩文件名.zip] [要压缩的文件/目录]

核心选项

选项 含义
-r 递归 压缩目录(必须加,否则只压缩目录本身,不包含内容)
-q 安静模式(不显示压缩过程)
-m 压缩后 删除原文件(move,慎用)
-u 向已有的 zip 压缩包中 添加新文件
-d 从已有的 zip 压缩包中 删除文件
-9 最高压缩级别(默认是 -6,级别越高,压缩率越高,速度越慢)

常用场景示例

  1. 压缩文件 / 目录
bash 复制代码
zip file.zip file.txt  			# 压缩单个文件 file.txt 为 file.zip
zip -r docs.zip docs/  			# 递归压缩 docs/ 目录为 docs.zip(必须加 -r)
zip -r9q photos.zip photos/		# 最高级别压缩 photos/ 目录,安静模式
  1. 向已有压缩包添加文件
bash 复制代码
zip -u docs.zip new_file.txt	#向docs.zip中添加 new_file.txt
  1. 从压缩包删除文件
bash 复制代码
zip -d docs.zip old_file.txt	#从 `docs.zip` 中删除 `old_file.txt`:
  1. 压缩并删除原文件
bash 复制代码
zip -rm temp.zip temp/ 	 #压缩 temp/ 后删除原目录(慎用!)

3. uzip : 解压 .zip 文件

unzipzip 的配套工具,专门用于解压 .zip 压缩包。

基本语法: unzip [选项] [压缩文件名.zip]

核心选项

选项 含义
-d 解压到 指定目录(目录不存在会自动创建)
-l 查看 压缩包中的文件列表(不解压)
-q 安静模式(不显示解压过程)
-o 覆盖已有文件(无需确认)
-n 不覆盖已有文件(遇到重复文件跳过)

常用场景示例

  1. 解压到当前目录
bash 复制代码
unzip docs.zip  # 解压 docs.zip 到当前目录,会提示覆盖确认
  1. 解压到指定目录
bash 复制代码
unzip photos.zip -d /home/user/pics/	#解压photos.zip到 /home/user/pics/
  1. 查看压缩包内容(不解压)
bash 复制代码
unzip -l docs.zip
  1. 强制覆盖解压(无需确认)
bash 复制代码
unzip -o docs.zip  # 覆盖当前目录中同名文件,不提示

常见压缩格式对比与选择

不同压缩命令生成的格式各有特点,选择时需考虑 兼容性压缩率速度

格式 工具组合 压缩率 速度 跨平台兼容性 适用场景
.tar tar 中等(需 tar 工具) 仅打包,不压缩(如备份临时合并)
.tar.gz tar + gzip 日常文件 / 目录压缩(最常用)
.tar.bz2 tar + bzip2 对压缩率要求较高的场景
.tar.xz tar + xz 最高 大文件压缩(如系统镜像)
.zip zip/unzip 极高(Windows/macOS 通用) 跨平台文件传输
相关推荐
爱倒腾的老唐4 小时前
07、Linux 文件管理
linux·运维·服务器
Raymond运维6 小时前
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
linux·运维·数据库·mysql
-dcr6 小时前
24.grep 使用手册
linux·运维开发·grep
心灵宝贝6 小时前
libopenssl1_0_0-1.0.2p-3.49.1.x86_64安装教程(RPM包手动安装步骤+依赖解决附安装包下载)
linux·运维·服务器
tryCbest6 小时前
Windows和Linux设置Https(SSL)访问
linux·windows·https
数据知道6 小时前
Go语言:数据压缩与解压详解
服务器·开发语言·网络·后端·golang·go语言
btyzadt6 小时前
Ubuntu中安装Nuclei教程
linux·运维·ubuntu
倔强的石头1067 小时前
【Linux指南】gdb进阶技巧:断点高级玩法与变量跟踪实战
linux·运维
未来之窗软件服务7 小时前
操作系统应用开发(二十三)RustDesk ng反向代理—东方仙盟筑基期
服务器·远程桌面·仙盟创梦ide·东方仙盟·rustdek
山,离天三尺三7 小时前
基于LINUX平台使用C语言实现MQTT协议连接华为云平台(IOT)(网络编程)
linux·c语言·开发语言·网络·物联网·算法·华为云