当前位置:首页>Linux>Linux命令每日一清单014:zip/unzip--压缩解压命令速查表

Linux命令每日一清单014:zip/unzip--压缩解压命令速查表

  • 2026-09-09 18:54:40
Linux命令每日一清单014:zip/unzip--压缩解压命令速查表

zip和unzip是Linux/Unix系统中处理ZIP格式压缩文件的标准工具。ZIP是一种跨平台的压缩格式,在Windows、macOS和Linux系统间广泛使用,这使得zip/unzip成为文件交换和备份的理想选择。

zip命令用于创建和更新ZIP压缩包,支持多种压缩级别、密码保护、分卷压缩等功能。unzip命令则用于解压ZIP文件,可以查看压缩包内容、选择性提取文件、测试压缩包完整性。作为系统管理员和普通用户的常用工具,掌握zip/unzip能让你在不同操作系统间轻松传递和归档文件。

1. 基本语法

命令说明
zip [options] archive.zip files
创建或更新ZIP压缩包
unzip [options] archive.zip
解压ZIP压缩包
zip -r archive.zip directory/
递归压缩整个目录
unzip archive.zip -d /target/path/
解压到指定目录
unzip -t archive.zip
测试压缩包完整性

2. 创建ZIP压缩包

命令说明
zip archive.zip file1.txt file2.txt
压缩多个文件
zip -r project.zip project/
递归压缩目录
zip -j flat.zip /path/to/file.txt
压缩时不包含目录路径(扁平化)
zip -9 -r maxcompress.zip /etc/
使用最大压缩级别(最慢,体积最小)
zip -0 -r faststore.zip media/
不压缩仅存储(最快)
zip -r logs.zip /var/log -x "*.gz"
排除匹配的文件
zip -q -r silent.zip directory/
静默模式(不输出信息)
zip -r backup.zip . -x "*.tmp" -x "*.log"
排除多个文件类型
zip -m move.zip file.txt
压缩后删除原文件

3. 更新现有压缩包

命令说明
zip archive.zip newfile.txt
向现有压缩包添加文件
zip -r archive.zip newdir/
向现有压缩包添加目录
zip -u archive.zip file.txt
仅更新已更改的文件
zip -d archive.zip "*.tmp"
删除压缩包中的临时文件
zip -FS archive.zip
同步压缩包与文件系统状态
zip -f archive.zip
整理压缩包(优化结构)

4. 查看与检查

命令说明
unzip -l archive.zip
列出压缩包中的文件
unzip -Z -v archive.zip
详细列出(大小、压缩率、方法)
zipinfo archive.zip
显示压缩包元信息
zipinfo -1 archive.zip
仅列出文件名(每行一个)
unzip -t archive.zip
测试压缩包完整性
zipinfo -h archive.zip
显示头部信息

5. 解压文件

命令说明
unzip archive.zip
解压到当前目录
unzip archive.zip -d /tmp/extract/
解压到指定目录
unzip archive.zip file.txt
只解压单个文件
unzip archive.zip "dir/*"
解压匹配模式的文件
unzip -n archive.zip
从不覆盖现有文件
unzip -o archive.zip
覆盖现有文件(不提示)
unzip -q archive.zip
静默解压(不输出信息)
unzip -j archive.zip
忽略目录结构(将所有文件解压到同一目录)

6. 密码保护的压缩包

命令说明
zip -e secure.zip file.txt
创建加密压缩包(交互式输入密码)
zip -er secure-dir.zip secrets/
加密压缩目录
unzip secure.zip
解压加密ZIP(提示输入密码)
zipcloak archive.zip
为现有压缩包添加加密
zipcloak -d archive.zip
移除压缩包的加密
zip -P password123 encrypted.zip file.txt
使用命令行指定密码(不安全,可能暴露)

7. 分卷压缩

命令说明
zip -r -s 100m split-backup.zip bigdir/
创建100MB大小的分卷压缩包
zip -s 0 split.zip --out merged.zip
将分卷合并为单个ZIP文件
unzip split.zip
解压分卷压缩包(需要所有分卷)
zip -s 2g -r media-split.zip media/
创建2GB大小的分卷

分卷文件命名示例:

  • backup.zip(第1部分)
  • backup.z01(第2部分)
  • backup.z02(第3部分)...

8. 实用组合模式

命令说明
zip -r backup-$(date +%Y%m%d).zip /home/user
创建带日期戳的备份
find . -name "*.txt" | xargs zip textfiles.zip
查找并压缩特定文件
unzip -l archive.zip | grep ".conf"
搜索压缩包中的配置文件
unzip archive.zip "*.py" -d ./python-code/
只解压Python文件
zip -r -9 -e secure-backup.zip documents/
最大压缩+加密
unzip -q -n archive.zip -d /target/
静默解压,不覆盖
zip -r exclude-hidden.zip dir/ -x ".*"
压缩时排除隐藏文件
unzip -Z -1 archive.zip | wc -l
统计压缩包中文件数量

9. 常用选项速查

选项完整名称说明
zip options
-
-
-r
--recurse-paths
递归处理目录
-j
--junk-paths
不保存目录路径(仅文件名)
-0
 to -9
压缩级别(0=不压缩,9=最大压缩)
-q
--quiet
静默模式
-u
--update
仅更新已更改的文件
-d
--delete
删除压缩包中的文件
-m
--move
压缩后删除原文件
-e
--encrypt
创建加密压缩包
-s
--split-size
创建分卷压缩
-x
--exclude
排除匹配的文件
-i
--include
仅包含匹配的文件
unzip options
-
-
-d
--directory
解压到指定目录
-n
--never-overwrite
从不覆盖
-o
--overwrite
覆盖不提示
-q
--quiet
静默解压
-t
--test
测试压缩包完整性
-j
--junk-paths
忽略目录结构
-l
--list
列出文件
-Z
--zipinfo
以zipinfo格式输出

10. 故障排查

问题解决方法
unzip: cannot find or open
检查文件路径和名称:ls -lh archive.zip
CRC error during extraction
压缩包可能损坏,使用unzip -t archive.zip测试完整性
Files overwritten without warning
使用unzip -n避免覆盖
Wrong file permissions after extract
使用ls -l检查权限,用chmod和chown调整
Password prompt fails
重新输入密码;用zipinfo确认压缩包已加密
Archive too large, need splitting
创建分卷压缩:zip -s 100m -r large.zip dir/
Missing parts when extracting split archive
确保所有分卷文件(.zip、.z01、.z02等)在同一目录
unzip: unsupported compression method
压缩方法不兼容,尝试在源系统重新压缩
Insufficient disk space
检查磁盘空间;提取到有足够空间的分区

温馨提示: 使用zip/unzip时,注意以下几点:1)跨平台传输时,避免使用特殊字符文件名;2)加密敏感数据时使用-e选项;3)大文件传输考虑分卷压缩;4)备份重要数据前先用-t测试压缩包完整性;5)批量操作时先用-l查看内容再解压。对于需要长期归档的数据,建议同时保存压缩包的MD5校验值。

本文PDF格式下载:

  关注公众号(haopython),请回复: LLTZIP

最新文章

随机文章