Linux / macOS 环境下解压 ZIP 文件的标准命令与常用变体

以下为 Linux / macOS 环境下解压 ZIP 文件的标准命令与常用变体,按工程使用频率整理。


一、最常用解压命令

bash 复制代码
unzip file.zip

说明:

  • 解压到 当前目录
  • 自动创建 ZIP 内部的目录结构

二、解压到指定目录(最常用)

bash 复制代码
unzip file.zip -d /path/to/output_dir

示例:

bash 复制代码
unzip data_20251222.zip -d /home/qzq/data/

三、查看 ZIP 内容(不解压)

bash 复制代码
unzip -l file.zip

用于:

  • 确认内部文件名
  • 判断是否路径过深 / 文件名过长

四、覆盖 / 不覆盖策略(重要)

1️⃣ 覆盖已存在文件(不询问)

bash 复制代码
unzip -o file.zip

2️⃣ 不覆盖已存在文件

bash 复制代码
unzip -n file.zip

五、处理中文乱码(非常关键)

如果 ZIP 是 Windows / GBK 编码 生成的(你这个场景很常见):

bash 复制代码
unzip -O GBK file.zip

或(部分系统):

bash 复制代码
unzip -O CP936 file.zip

六、只解压指定类型文件

bash 复制代码
unzip file.zip "*.jpg"

解压到指定目录:

bash 复制代码
unzip file.zip "*.jpg" -d images/

七、排除指定文件/目录

bash 复制代码
unzip file.zip -x "__MACOSX/*"

八、路径过长 / 解压失败时的工程处理建议

如果你再次遇到类似:

复制代码
filename too long

建议流程:

bash 复制代码
mkdir /tmp/unzip_test
cd /tmp/unzip_test
unzip /path/to/file.zip

或:

bash 复制代码
unzip file.zip | head

先确认内部文件名长度。


九、如果系统没有 unzip

Ubuntu / Debian

bash 复制代码
sudo apt install unzip

CentOS / Rocky / Alma

bash 复制代码
sudo yum install unzip

相关推荐
草莓熊Lotso7 小时前
Qt 主窗口核心组件实战:菜单栏、工具栏、状态栏、浮动窗口全攻略
运维·开发语言·人工智能·python·qt·ui
RisunJan7 小时前
Linux命令-lprm(删除打印队列中任务)
linux·运维·服务器
Web极客码7 小时前
WordPress从经典编辑器升级到古腾堡编辑器
运维·编辑器·wordpress
zzzsde7 小时前
【Linux】进程(5):命令行参数和环境变量
linux·运维·服务器
迎仔7 小时前
E-自动化:GPU驱动维护自动化
运维·gpu·gpu驱动
代码游侠7 小时前
复习——Linux设备驱动开发笔记
linux·arm开发·驱动开发·笔记·嵌入式硬件·架构
The森7 小时前
Linux IO 模型纵深解析 03:同步 IO 与异步 IO
linux·服务器
草莓熊Lotso8 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑8 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
wdfk_prog16 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习