一、基本概念
归档(Archive):将多个文件 / 目录打包成单个文件(如
archive.tar
)。压缩(Compression):对归档文件进一步压缩(如
archive.tar.gz
)。
二、常用操作
1. 创建归档文件
# 创建未压缩的 tar 文件
tar -cf 归档.tar 目录1/ 文件1.txt
# 创建 gzip 压缩的 tar 文件(.tar.gz 或 .tgz)
tar -czf 归档.tar.gz 目录1/ 文件1.txt
# 创建 bzip2 压缩的 tar 文件(.tar.bz2)
tar -cjf 归档.tar.bz2 目录1/ 文件1.txt
# 创建 xz 压缩的 tar 文件(.tar.xz)
tar -cJf 归档.tar.xz 目录1/ 文件1.txt
2. 提取归档文件
# 解压到当前目录
tar -xf 归档.tar.gz
# 解压到指定目录
tar -xf 归档.tar.gz -C /目标路径/
# 查看归档内容(不解压)
tar -tf 归档.tar.gz
3. 追加文件到归档(仅适用于未压缩的 tar)
tar -rf 归档.tar 新文件.txt
4. 增量备份(仅备份修改过的文件)
# 只备份 2025 年 1 月 1 日之后修改的文件
tar -czf 增量备份.tar.gz --newer-mtime="2025-01-01" /数据目录/
# 只备份比 reference.txt 更新的文件
tar -czf 更新文件.tar.gz --newer-mtime="reference.txt" /项目目录/
5. 压缩时排除大文件
tar -czf 轻量备份.tar.gz --exclude-from=排除列表.txt 项目/
其中 排除列表.txt
内容示例:
*.iso
*.mp4
大型数据库/
6. 备份目录
# 创建带日期的系统备份
tar -czpf 系统备份_$(date +%Y%m%d).tar.gz /etc /home
7. 仅提取归档中的部分文件
# 只提取 docs 目录
tar -xf 项目.tar.gz 项目名称/docs/
# 提取特定文件
tar -xf 配置.tar.gz --strip-components=1 配置目录/数据库.conf