Linux unzip下令教程:如何在Linux中解压.zip文件(附实例详解和留意事项)

[复制链接]
发表于 2026-10-3 11:41:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

unzip 是什么

unzip 在 Linux 里用来解压 .zip 格式。ZIP 是目前最通用的无损压缩容器格式——一个 zip 文件本质是个数据容器,里面可以装一个或多个被压缩的文件或目录,需要时再解出来还原成原始字节。正因为通用,服务器上的源码包、安装包大部分都是 zip 封装。

一、先装 unzip

多数 Linux 发行版默认不带 unzip,先用包管理器装上:

# Ubuntu / Debian
sudo apt install unzip

# CentOS / Fedora / Rocky
sudo yum install unzip

# Arch
sudo pacman -S unzip

# openSUSE
sudo zypper install unzip

装完确认:unzip -v 能打印版本号就算好了。

二、基本语法

unzip [选项] zip_file

不带任何选项时,全部内容解到当前目录。这既是最常用也可能是最危险的用法——万一 zip 里是绝对路径或者在归档时带了多余层级,解压出来会直接覆盖当前目录的文件。

三、常用选项

选项作用
-q安静模式,压制解压过程的消息输出
-d 目录路径指定解压的目标目录
-P 密码zip 被密码保护时,用这个选项给密码
-o覆盖已存在的文件,不询问
-n不覆盖已存在的文件
-l只列出内容,不解压
-t只测试完整性,不解压
-u只解比目标文件新的文件(会覆盖旧的)
-x 文件列表排除指定的文件

-u 和 -n 正好相反:-u 是「目标已经存在但归档里更新就覆盖」,-n 是「目标存在就一律不动」。这两个别记混。

四、16 个实例

实例 1:解压到当前目录

unzip latest.zip

实例 2:解压到指定目录

unzip latest.zip -d /var/www

实例 3:解压加密 zip

unzip -P PasswOrd filename.zip

实例 4:覆盖已有文件

unzip -o latest.zip

实例 5:只看内容不解压

unzip -l latest.zip

实例 6:测试完整性

unzip -t latest.zip

实例 7:只取其中两个文件

unzip latest.zip file1.txt file2.txt

实例 8:指定文件的同时指定目录

unzip latest.zip file1.txt file2.txt -d /var/www

实例 9:全解压但排除两个文件

unzip latest.zip -x file1.txt file2.txt

实例 10:排除文件 + 指定目录

unzip latest.zip -x file1.txt file2.txt -d /var/www

实例 11:只解比目标新的(覆盖旧)

unzip -u latest.zip

实例 12:-u 加指定目录

unzip -u latest.zip -d /var/www

实例 13:目标不存在或比目标新才解(-n)

unzip -n latest.zip

实例 14:-n 加指定目录

unzip -n latest.zip -d /var/www

实例 15:-n 排除特定文件

unzip -n latest.zip -x file1.txt file2.txt

实例 16:-n 排除 + 指定目录(组合拳)

unzip -n latest.zip -x file1.txt file2.txt -d /var/www

五、注意事项

  • unzip 不保留原属主:解出来的文件归「执行解压命令的那个用户」所有。用 root 解的服务端包,之后再让 www-data 写会有权限问题。
  • 当前目录要有写权限:解压本质是写文件,目录不可写直接报 Permission denied。
  • 别在命令行里裸敲密码:-P 后面跟的密码会出现在 ps 输出和 shell 历史里,等于公开。更安全的做法是不加 -P,让 unzip 弹提示,从 stdin 输入。
  • 路径穿越风险:不可信来源的 zip 可能含 ../ 条目,用 unzip -o 直接解到当前目录有可能覆盖任意文件。生产环境建议先 unzip -l 看一眼结构,或用 7z x 的安全模式。
  • 解压前先看包大小:磁盘快满时 zip 解压会把分区瞬间写爆,先 df -h。

六、相关命令对照

  • zip:创建 zip 压缩包
  • tar:处理 .tar(常配 gzip/xz 用 cvzf / xvzf)
  • gzip / gunzip:压缩解压 .gz
  • bzip2:压缩解压 .bz2
  • xz:压缩解压 .xz,压缩率高但慢
  • lzma:压缩解压 .lzma
  • rar / unrar:处理 .rar(因专利授权限制,多数发行版仓库里没有,需自行装闭源包)
  • 7z:处理 .7z,压缩率最优

服务端最常见的组合其实不是 zip 而是 tar.gz:tar -zxvf pkg.tar.gz。unzip 的主战场是那些「Windows 传上来、或者上游就是 zip 发布」的场景。

小结

记住四组就够了:输出位置用 -d,覆盖策略用 -o/-n/-u,过滤用 -x 排除或直写文件名,先验货用 -l 列表和 -t 测完整性。生产脚本里建议固定搭配 -q -o 加 -d,输出可预期,不会被交互提示卡住。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表