为什么需要结合 tar 命令?
gzip
是单文件压缩工具,无法处理文件夹结构。tar
(Tape Archive)可将多个文件/文件夹打包为单个.tar
文件。- 通过
tar
的-z
选项,直接调用gzip
压缩,生成.tar.gz
(或.tgz
)文件。
压缩文件夹的完整步骤
基础命令
tar -zcvf 压缩包名称.tar.gz 要压缩的文件夹路径
- 参数解析:
-z
:启用gzip
压缩。-c
:创建新的压缩包。-v
:显示压缩过程(可选,建议调试时使用)。-f
:指定压缩包文件名(必须放在最后)。
操作示例
压缩/home/user/documents
文件夹,生成documents_backup.tar.gz
:
tar -zcvf documents_backup.tar.gz /home/user/documents
输出效果:
/home/user/documents/file1.txt
/home/user/documents/subdir/file2.log
...
自定义压缩级别(可选)
gzip
支持1-9
级压缩(默认6
),级别越高压缩率越大但速度越慢,通过--gzip
参数调整:
tar -cvf - /home/user/documents | gzip -9 - > documents_backup.tar.gz
-9
:最高压缩级别(可替换为1
最快压缩)。
其他实用操作
▶ 解压.tar.gz
文件
tar -zxvf documents_backup.tar.gz
-x
:解压(替换-c
创建参数)。
▶ 查看压缩包内容(不解压)
tar -ztvf documents_backup.tar.gz
▶ 保留原始文件夹(排除父级路径)
使用-C
参数进入目录再压缩,避免包含完整路径:
tar -zcvf documents_backup.tar.gz -C /home/user documents
注意事项
- 保留原文件:
tar -zcvf
不会删除原文件夹,压缩后保留原始数据。
- 大文件处理:
- 压缩超大文件夹时,使用
-v
可能产生大量输出,可省略此参数。
- 压缩超大文件夹时,使用
- 空间检查:
- 压缩前用
df -h
确认磁盘空间,避免因空间不足失败。
- 压缩前用
- 符号链接处理:
- 默认
tar
跟随符号链接指向的实际文件,添加-h
参数可保留链接本身。
- 默认
- 核心命令:
tar -zcvf 名称.tar.gz 文件夹路径
是Linux压缩文件夹的标准方法。 - 适用场景:备份数据、传输多个文件、节省磁盘空间。
- 优势:保留文件权限、所有权及目录结构,兼容所有Linux发行版。
引用说明基于Linux核心工具
tar
和gzip
的官方文档(GNU项目),参考了Linux手册页(man tar
)及开源社区最佳实践,具体参数详见GNU Tar手册。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/10136.html