如何压缩Linux目录 tar结合gzip压缩技巧

发布时间 - 2025-08-12 00:00:00    点击率:

使用tar -czf命令可打包并gzip压缩目录,生成.tar.gz文件;2. 通过gzip=-9可提高压缩级别至最高,减小体积但耗时增加;3. 使用--exclude参数可排除指定文件或目录,如日志、缓存等;4. 用tar -tzf查看压缩包内容,结合grep过滤所需文件;5. 结合find命令可压缩指定时间内修改的文件,实现简易增量备份;6. 添加-v参数可显示压缩过程中的文件列表,便于监控进度;掌握这些技巧可高效完成linux目录压缩、备份与管理任务。

在Linux系统中,使用

tar
命令结合
gzip
压缩是一种非常常见且高效的目录压缩方式。它不仅能打包多个文件和目录,还能通过gzip算法减小体积,便于备份或传输。下面介绍几种实用的压缩技巧。


一、基本压缩命令:tar + gzip

最常用的命令格式如下:

tar -czf archive.tar.gz /path/to/directory

参数说明:

  • -c
    :创建新的归档文件
  • -z
    :使用gzip压缩(生成
    .tar.gz
    .tgz
    文件)
  • -f
    :指定归档文件名
  • /path/to/directory
    :要压缩的目录路径

例如,压缩当前目录下的

mydata
文件夹:

tar -czf mydata.tar.gz mydata/

这会生成一个名为

mydata.tar.gz
的压缩包。


二、提高压缩率:使用更高压缩级别

默认情况下,gzip使用压缩级别6(共1-9级),你可以通过设置环境变量

gzip
来调整压缩级别,以获得更小的文件体积(但耗时更长):

GZIP=-9 tar -czf mydata.tar.gz mydata/

说明:

  • GZIP=-9
    表示使用最高压缩比
  • -1
    最快但压缩率最低,
    -9
    最慢但最省空间
注意:对于已经压缩过的文件(如jpg、mp4、zip等),进一步压缩效果有限,建议只对文本、日志、源码等可压缩性强的数据使用高级别压缩。

三、排除特定文件或目录

有时你希望跳过某些不需要压缩的内容,比如缓存文件、日志或临时文件。可以使用

--exclude
参数:

tar -czf backup.tar.gz --exclude='*.log' --exclude='tmp/' --exclude='cache/' myproject/

也可以排除多个模式:

tar -czf site.tar.gz --exclude='*.tmp' --exclude='*.swp' --exclude='node_modules' --exclude='.git' mywebsite/

提示:路径匹配是基于归档路径的,确保排除规则与实际路径一致。


四、查看压缩包内容而不解压

检查

.tar.gz
文件里有哪些文件,可以用:

tar -tzf archive.tar.gz
  • -t
    :列出归档中的文件
  • -z
    :表示使用gzip解压查看
  • -f
    :指定文件名

你还可以结合

grep
过滤结果:

tar -tzf mydata.tar.gz | grep '.txt'

五、仅压缩最近修改的文件(增量备份思路)

虽然

tar
本身不支持真正的增量备份,但可以通过时间条件配合
find
命令实现部分更新压缩:

find mydata/ -mtime -7 -type f | xargs tar -czf recent.tar.gz

这会把

mydata/
中7天内修改过的文件打成包(注意:目录结构可能不完整,需谨慎使用)。

更推荐的做法是使用

tar
的增量功能(通过
-g
参数配合 snapshot 文件),但相对复杂,适合定期自动化备份场景。


六、压缩时显示进度

如果你压缩的是大目录,可能想知道进度。虽然

tar
没有内置进度条,但可以加
-v
参数查看正在处理的文件:

tar -czvf backup.tar.gz my_large_dir/
  • -v
    :verbose 模式,列出每个被处理的文件

小技巧:如果想估算时间,可先测试压缩部分子目录,评估速度。


基本上就这些常用技巧。掌握

tar -czf
及其扩展选项,能高效完成大多数Linux目录压缩任务。关键是根据实际需求选择是否排除文件、调整压缩级别,以及合理命名和管理压缩包。


# linux  # git  # Directory  # 算法  # 自动化  # 压缩包  # 多个  # 这会  # 的是  # 压缩率  # 如果你  # 是一种  # 你可以  # 不需要  # 还能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  如何用IIS7快速搭建并优化网站站点?  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何快速搭建安全的FTP站点?  BootStrap整体框架之基础布局组件  南京网站制作费用,南京远驱官方网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何生成API文档?(Swagger/OpenAPI教程)  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  黑客如何通过漏洞一步步攻陷网站服务器?  python中快速进行多个字符替换的方法小结  Laravel如何实现本地化和多语言支持?(i18n教程)  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  详解Android图表 MPAndroidChart折线图  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何在局域网内绑定自建网站域名?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  详解Android中Activity的四大启动模式实验简述  Python进程池调度策略_任务分发说明【指导】  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  EditPlus中的正则表达式 实战(4)  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  如何在 Pandas 中基于一列条件计算另一列的分组均值  QQ浏览器网页版登录入口 个人中心在线进入  手机软键盘弹出时影响布局的解决方法  如何为不同团队 ID 动态生成多个“认领值班”按钮  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何用搬瓦工VPS快速搭建个人网站?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  青岛网站建设如何选择本地服务器?  中山网站推广排名,中山信息港登录入口?  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel如何处理表单验证?(Requests代码示例)  如何快速搭建虚拟主机网站?新手必看指南  html如何与html链接_实现多个HTML页面互相链接【互相】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Bootstrap整体框架之CSS12栅格系统  Laravel如何自定义错误页面(404, 500)?(代码示例)  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何在宝塔面板创建新站点?  javascript基于原型链的继承及call和apply函数用法分析