Linux压缩解压实战指南:tar、gzip、zip 完整操作清单 Linux压缩解压实战指南tar、gzip、zip 完整操作清单【免费下载链接】linux-tutorial:penguin: Linux教程主要内容Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial本文出自开源项目 linux-tutorial按使用场景梳理 Linux 压缩解压命令讲清 tar/gzip/zip 命令的高频组合。读完即可处理 .tar、.tar.gz、.zip 的解压、整目录压缩与排除文件等场景。在 Linux 上收到一个源码包或者收到同事从 Windows 发来的 .zip 文件第一个动作都一样——打开它。下面是打开这些压缩包、再把东西发出去的整套命令。1. 先识别再动手这个压缩包到底是什么别上来就敲解压命令先用file判断真实格式它比看后缀更可靠file shop.tar.gz app.zip notes.tar # shop.tar.gz: gzip compressed data # app.zip: Zip archive data # notes.tar: POSIX tar archive (GNU)确认格式后按用途选命令你的场景推荐格式记住的命令为什么服务器目录备份.tar.gztar -czf体积小、速度快Linux 上最常见和 Windows 交换文件.zipzip -r两边直接打开无需转换只把几个文件捆走.tartar -cf不压缩最省时间单个大文件只省空间.gzgzip不需要目录结构长期归档、体积最小.tar.xztar -cJf体积最小但最慢 一句话留在 Linux 上用 .tar.gz要发 Windows 就用 .zip。2. 把目录压成小包tar 负责捆gzip 负责挤这两个词最容易混。tar 的本职是打包——把一堆文件和目录捆成一个档案本身完全不省空间。真正压体积的是压缩工具tar 加一个字母就能调用它-z调 gzip产出 .tar.gz-j调 bzip2产出 .tar.bz2-J调 xz产出 .tar.xz.tar.gz 这个双后缀就是这么来的前半段是 tar 的打包结果后半段是 gzip 的压缩结果。常用参数参数作用-c / -x / -t创建档案 / 还原 / 只看内容-z / -j / -J用 gzip / bzip2 / xz 压缩-f指定档案名必须放最后-v逐行显示文件清单-C还原到指定目录tar -czf /backup/shop_$(date %F).tar.gz /var/www/shop tar -tzf /backup/shop_2026-08-23.tar.gz | head tar -xzf /backup/shop_2026-08-23.tar.gz -C /tmp/restore第二行只列档案里前几项第三行用-C指定还原位置避免文件散落满当前目录。⚠️-f必须紧跟在最后它的下一位就是文件名。写错位置会看到tar: -f: No such file or directory。3. zip 递归压缩目录压缩时排除文件的正确写法zip 最大的价值是跨平台Linux 上压出来Windows 双击就能开。压缩目录要加-r递归进子目录zip -r dist_v1.2.zip build/ docs/ -x *.tmp -x build/cache/* unzip -l dist_v1.2.zip unzip -d /tmp/preview dist_v1.2.zip-x跟在档案名后面排除规则要加引号排除多个就各写一个-xunzip -l只列内容不还原-d指定解压目录加-o覆盖同名文件不再询问加密包解压时加-P跟密码4. 实战脚本备份目录自动清理旧备份把前面的命令组合起来就是一段每天备份一个目录、只留最近 7 份的脚本#!/bin/bash TARGET/opt/myapp/data DEST/backup/myapp NAMEmyapp_$(date %F).tar.gz mkdir -p $DEST tar -czf $DEST/$NAME -C $(dirname $TARGET) $(basename $TARGET) ls -t $DEST | grep -v $NAME | tail -n 7 | xargs -r rm -f -- $DEST/{}tar 那行有个小技巧用-C先跳到 data 的父目录再打包目录名本身。这样档案里的路径变成data/...这种相对路径换机器还原时不会把绝对路径搞混。5. 新手高频踩坑5.1 记不住参数如何解压 tar.gz只记一组对照创建tar -czf解压tar -xzf查看tar -tzf。把c换成x就是反方向。5.2 遇到 .tar.bz2、.tar.xz 怎么办思路相同-j配 bzip2大写-J配 xz。解压写成tar -xjf pkg.tar.bz2或tar -xJf pkg.tar.xz。J 是 j 按住 Shift 的键。最常见的错误就是用 xz 包敲了小写 j报not bzip2 compressed data。5.3 gzip 报 Not a directorygzip 只处理单个文件不能直接压目录。目录先交给 tar 捆起来再用-z让 tar 顺带调 gzip这是唯一顺路。5.4 只想还原大档案里的一个文件在解压命令末尾追加文件名tar -xzf shop_2026-08-23.tar.gz var/www/shop/config/app.yml。只还原这一个文件几百 GB 的档案也不用全量解开。6. 下一步建议 先找个任意小目录把tar -czf和tar -tzf各敲三遍再用zip -r试一次排除全部*.log文件。参数细节可对照项目内 docs/linux/cli/linux-cli-file-compress.md 这一章。【免费下载链接】linux-tutorial:penguin: Linux教程主要内容Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考