直接用 unzip 提取压缩包里的指定子目录,核心方法是在命令中明确写出该子目录的完整路径(含末尾斜杠),如 unzip archive.zip "docs/";需先用 unzip -l 查看真实路径,注意大小写与结构,并可用 -d 指定目标位置。

直接用 unzip 提取压缩包里的指定子目录,核心方法是:**在命令中明确写出该子目录的路径(含斜杠),并确保路径与压缩包内实际结构一致**。
确认子目录在压缩包中的真实路径
ZIP 文件保留原始目录结构。先用 unzip -l archive.zip 列出内容,找到目标子目录的完整路径(比如 docs/ 或 src/main/java/)。注意大小写和末尾斜杠——docs 和 docs/ 在某些情况下可能被当作不同条目。
提取单个子目录(含其全部内容)
只需把子目录路径作为参数跟在压缩包名后面:
-
unzip archive.zip "docs/"→ 提取docs/目录及其所有文件和子目录 -
unzip archive.zip "src/main/"→ 提取src/main/下所有内容
引号不是必须的,但推荐加上,尤其当路径含空格或特殊字符时。路径必须完全匹配压缩包内显示的名称。
提取到指定目标位置
用 -d 指定解压目标目录,子目录会按原结构创建在该位置下:
-
unzip archive.zip "config/" -d /opt/myapp→ 把config/整个目录解压到/opt/myapp/config/ -
unzip archive.zip "images/logo.png" -d ./output→ 只提取单个文件,并放在./output/images/logo.png
避免常见错误
不加引号且路径含空格会报错;路径写错(如少写一级、大小写不符)会导致“没有匹配文件”提示;仅写目录名不带斜杠(如 "docs")可能无法匹配到目录项,建议统一用 "docs/" 形式。











