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

相关推荐
十碗饭吃不饱几秒前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋7 分钟前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
贝锐2 小时前
金仓、达梦、TDSQL全适配:向日葵补齐信创数据库层远程运维能力
运维·数据库·信创
CodeYp20193 小时前
第14讲:mmap 实现文件 LRU 缓存
linux·lru·mmap
程序开发阿元3 小时前
一台 20G 的 VPS 被日志吃掉一半:我按这个顺序查了二十分钟
linux·ssh
.冰块.4 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
承渊政道4 小时前
Linux网络学习【深入理解多路转接select、poll的代码改写】
linux·ubuntu·select·多路转接·poll
雪落漂泊4 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
方便面不加香菜4 小时前
Docker Container -- 容器命令详解
运维·docker·容器
qq_377572775 小时前
linux x86 arm loongarch
linux