unzip · 拆快递

上游:apt(先用 apt 装好 unzip)· ls(解压前看看压缩包里有什么)· cd(进入目标目录) 下游:find(找到解压出来的文件)· tar(处理 .tar.gz 格式)· chmod(解压完设置权限) 参见:wget(下载 .zip 文件)· curl(另一个下载工具)


一句话是什么

unzip.zip 压缩包解压开来——就像拆快递,把压缩好的包裹还原成原来的文件和文件夹。


为什么需要它

你从网上下载东西,很多时候是一个 .zip 文件:

bedrock-server-1.21.0.zip   ← Minecraft 服务器
software.zip                 ← 某个 Linux 程序
photos.zip                   ← 压缩的照片包

Windows 双击就能解压,Linux 命令行里需要 unzip 命令。

Ubuntu 默认没有安装 unzip(没错,需要先装):

sudo apt install unzip

安装好之后,一条命令解压:

unzip bedrock-server-1.21.0.zip

核心用法

公式

unzip [选项] 文件.zip [-d 目标目录]

常用命令表

操作命令说明
直接解压unzip 文件.zip解压到当前目录
解压到指定目录unzip 文件.zip -d ~/目标/解压到指定位置
预览内容(不解压)unzip -l 文件.zip列出压缩包里有什么
静默解压unzip -q 文件.zip不显示解压过程
覆盖已有文件unzip -o 文件.zip有同名文件直接覆盖
不覆盖unzip -n 文件.zip有同名文件就跳过

记忆口诀

先 -l 看清楚里面有什么
再决定解压到哪里

Linux 笑话

Aaron 下载了 Minecraft 服务器压缩包,兴奋地输入:

unzip bedrock-server.zip

终端开始疯狂打印文件名,几百行一闪而过, 然后他发现——所有文件直接散落在当前目录, 跟他的学习文件混在一起了。

$ ls
任务A.md  任务B.md  start.sh  server.properties  bedrock_server  ...

他花了 10 分钟把两件事的文件分开。

之后他学会了

unzip bedrock-server.zip -d ~/mc-server/

先建好文件夹,再解压进去。 拆快递之前,先准备好放东西的地方。


例题精讲

📗 初探 Starter — 先看再解压

任务:下载一个压缩包,先看里面有什么,再安全地解压。

# 第一步:确认 unzip 有没有安装
which unzip
# 如果没有输出,就装:
sudo apt install unzip
 
# 第二步:创建一个测试压缩包(我们自己造一个练手)
mkdir -p ~/练习/待解压
echo "这是文件1" > ~/练习/文件1.txt
echo "这是文件2" > ~/练习/文件2.txt
cd ~/练习
zip 练习包.zip 文件1.txt 文件2.txt
 
# 第三步:先看看压缩包里有什么
unzip -l 练习包.zip
# 输出:
#   Length      Date    Time    Name
# ---------  ---------- -----   ----
#        15  2026-04-20 08:00   文件1.txt
#        15  2026-04-20 08:00   文件2.txt
 
# 第四步:解压到新目录
mkdir -p ~/练习/解压结果
unzip 练习包.zip -d ~/练习/解压结果/
 
# 第五步:确认解压成功
ls ~/练习/解压结果/

你学到了什么-l 先预览,-d 指定目录。 两步习惯能救你很多乱文件的麻烦。


📘 应用 User — 解压 Minecraft 服务器

任务:假设你已经下载了 BDS(Bedrock 专用服务器),解压并准备运行。

# 假设文件在 ~/Downloads/
ls ~/Downloads/
# bedrock-server-1.21.0.01-linux.zip
 
# 第一步:建好目标目录
mkdir -p ~/mc-server
 
# 第二步:先看里面有什么
unzip -l ~/Downloads/bedrock-server-1.21.0.01-linux.zip | head -20
# 会看到:bedrock_server, server.properties, start.sh 等
 
# 第三步:解压进 mc-server 目录
unzip ~/Downloads/bedrock-server-1.21.0.01-linux.zip -d ~/mc-server/
 
# 第四步:确认
ls ~/mc-server/
# bedrock_server  server.properties  start.sh  ...
 
# 第五步:看 bedrock_server 的权限
ls -la ~/mc-server/bedrock_server

你学到了什么:解压后可能需要 chmod 给可执行文件加上运行权限, 这就是 unzip → chmod 这条链的原因。


📙 管理 Admin — 批量解压 + 验证完整性

任务:解压多个文件并检查是否完整。

# 批量解压当前目录所有 .zip 文件
for f in *.zip; do
    echo "解压 $f ..."
    unzip -q "$f" -d "${f%.zip}/"
done
 
# 验证压缩包是否完整(没有损坏)
unzip -t 文件.zip
# 输出:
# testing: 文件1.txt    OK
# testing: 文件2.txt    OK
# No errors detected in compressed data in 文件.zip
 
# -t = test,测试但不真正解压

你学到了什么-t 选项是下载大文件后第一件要做的事—— 确认下载完整,没有因为网络中断而损坏,再开始后续操作。


官方文档参考

man unzip        # 完整手册
unzip --help     # 快速选项列表

unzip 支持 list / test / extract 三种模式;默认解压到当前目录。 在线:https://manpages.ubuntu.com/unzip


节点链接

上游(先做这些,才能用 unzip)

  • apt ← sudo apt install unzip(Ubuntu 默认没装)
  • ls ← 看看下载的文件在哪、叫什么名字
  • cd ← 进入下载目录

同层(经常一起用)

  • tar ← .tar.gz 格式用 tar,.zip 用 unzip,Linux 两种都要会
  • wget ← 下载 .zip 文件
  • curl ← 另一个下载工具

下游(解压之后接着干)

  • find ← 找到解压出来的文件
  • chmod ← 给解压出来的可执行文件加权限
  • ls ← 确认解压结果

最终目标


节点版本:v1.0 · 2026-04-20 下一个节点建议:tarchmod