Linux打包整合文件/目录为单个归档,便于传输存储,常用tar工具配合压缩命令(如gzip/bzip2),需注意路径、权限及保留原始属性。
核心工具:tar
命令
tar
(Tape Archive)是Linux最基础的打包工具,可将多个文件/目录合并为.tar
归档文件。
基本语法:
tar [选项] 输出文件名.tar 输入文件/目录
常用场景示例
-
打包目录(保留原始权限):
tar -cvf backup.tar /path/to/directory
-c
:创建新归档-v
:显示打包过程(可选)-f
:指定输出文件名
-
打包多个文件:
tar -cvf documents.tar file1.txt file2.jpg /home/user/docs
-
排除特定文件:
tar -cvf backup.tar --exclude="*.tmp" /path/to/directory
打包与压缩的区别
- 打包(
.tar
):仅合并文件,不减小体积。 - 压缩:通过算法减小文件大小,需配合压缩工具(如gzip、bzip2)。
通常两者结合使用:先打包再压缩,生成如.tar.gz
、.tar.bz2
等文件。
打包并压缩(一步操作)
tar
支持直接调用压缩工具,通过不同选项实现:
压缩类型 | 命令示例 | 输出文件扩展名 | 特点 |
---|---|---|---|
gzip | tar -czvf archive.tar.gz /path |
.tar.gz |
速度快,通用性强 |
bzip2 | tar -cjvf archive.tar.bz2 /path |
.tar.bz2 |
压缩率高,速度较慢 |
xz | tar -cJvf archive.tar.xz /path |
.tar.xz |
最高压缩率,耗时较长 |
选项说明:
-z
:调用gzip-j
:调用bzip2-J
:调用xz
查看归档内容
不解压直接列出包内文件:
tar -tvf archive.tar.gz # 查看.tar.gz内容 tar -tvf archive.tar.bz2 # 查看.tar.bz2内容
解包与解压
解压到当前目录:
tar -xvf archive.tar # 解包.tar文件 tar -xzvf archive.tar.gz # 解压.tar.gz tar -xjvf archive.tar.bz2 # 解压.tar.bz2 tar -xJvf archive.tar.xz # 解压.tar.xz
-x
:解包/解压-v
和-f
作用同打包时
解压到指定目录:
tar -xzvf archive.tar.gz -C /target/directory
高级技巧
-
增量备份(仅备份新文件):
tar -g snapshot.snar -czvf backup-incremental.tar.gz /path
-
保留文件权限与属性:
添加-p
选项(如tar -cpzvf
),适用于系统备份。 -
分卷压缩(大文件分割):
tar -czvf - /large_dir | split -b 2G - backup_part.tar.gz.
合并分卷:
cat backup_part.tar.gz.* | tar -xzvf -
安全注意事项
- 验证文件来源:解压前检查归档文件完整性(如通过
sha256sum
校验)。 - 避免覆盖文件:解压时使用
-k
选项防止覆盖现有文件(tar -xkzvf
)。 - 防范恶意包:切勿解压来源不明的归档文件,可能包含隐藏路径(如
/etc/passwd
覆盖攻击)。
- 基础打包:
tar -cvf
- 打包+压缩:
tar -czvf
(gzip)、tar -cjvf
(bzip2)、tar -cJvf
(xz) - 解压:
tar -xzvf
(对应压缩格式) - 关键选项:
-c
(创建)、-x
(解压)、-v
(详情)、-f
(文件名)、-C
(指定目录)
提示:更多参数可通过man tar
查看官方手册,或访问GNU Tar文档。
引用说明:
- Linux
tar
命令手册页(man tar
) - GNU Tar官方文档:https://www.gnu.org/software/tar/
- 文件压缩算法对比参考:https://linuxhandbook.com/tar-commands/
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8151.html