Linux tar 命令使用说明
Linux tar 命令使用说明概述
tar(tape archive)是 Linux 系统中用于创建、查看和提取归档文件的工具。它可以将多个文件或目录打包成一个文件,也可以结合压缩工具(如 gzip、bzip2、xz)进行压缩。
基本语法
tar [选项] [归档文件名] [要归档的文件/目录...]主要操作模式
创建归档
[*]-c, --create: 创建新的归档文件
[*]-r, --append: 向现有归档文件追加文件
[*]-u, --update: 更新归档文件中的文件
提取归档
[*]-x, --extract: 从归档文件中提取文件
[*]-t, --list: 列出归档文件的内容
压缩选项
[*]-z, --gzip: 使用 gzip 压缩/解压
[*]-j, --bzip2: 使用 bzip2 压缩/解压
[*]-J, --xz: 使用 xz 压缩/解压
[*]-Z, --compress: 使用 compress 压缩/解压
常用选项
基本选项
[*]-f, --file: 指定归档文件名
[*]-v, --verbose: 显示详细信息
[*]-C, --directory: 切换到指定目录
[*]-P, --absolute-names: 保留绝对路径
[*]-p, --preserve-permissions: 保留文件权限
[*]--exclude: 排除指定文件或目录
[*]-X, --exclude-from: 从文件读取排除列表
高级选项
[*]--wildcards: 使用通配符匹配
[*]--strip-components=N: 提取时去掉N层目录
[*]--remove-files: 归档后删除原文件
[*]--checkpoint: 显示进度信息
常用命令示例
1. 创建归档文件
基本打包
# 创建tar归档文件
tar -cf archive.tar file1.txt file2.txt
# 创建归档并显示详细信息
tar -cvf archive.tar file1.txt file2.txt
# 打包整个目录
tar -cvf backup.tar /home/user/documents/压缩打包
# 使用gzip压缩
tar -czvf archive.tar.gz file1.txt file2.txt
# 使用bzip2压缩
tar -cjvf archive.tar.bz2 file1.txt file2.txt
# 使用xz压缩(压缩率最高)
tar -cJvf archive.tar.xz file1.txt file2.txt2. 查看归档文件内容
# 列出归档文件内容
tar -tf archive.tar
# 详细列出归档文件内容
tar -tvf archive.tar
# 查看压缩归档文件内容
tar -tzf archive.tar.gz3. 提取归档文件
# 提取到当前目录
tar -xf archive.tar
# 提取并显示详细信息
tar -xvf archive.tar
# 提取到指定目录
tar -xvf archive.tar -C /target/directory/
# 提取压缩归档文件
tar -xzf archive.tar.gz
tar -xjf archive.tar.bz2
tar -xJf archive.tar.xz4. 增量备份
# 创建完整备份
tar -czf backup_full.tar.gz /home/user/
# 创建增量备份(只备份修改的文件)
tar -czf backup_incremental.tar.gz --newer-mtime='2024-01-01' /home/user/5. 排除特定文件
# 排除特定文件
tar -czf backup.tar.gz --exclude='*.log' --exclude='*.tmp' /home/user/
# 从文件读取排除列表
tar -czf backup.tar.gz -X exclude_list.txt /home/user/实际应用场景
1. 系统备份
# 备份重要配置文件
tar -czf config_backup.tar.gz /etc/
# 备份用户数据
tar -czf user_data.tar.gz /home/ --exclude='*.cache'
# 备份整个系统(排除不需要的目录)
tar -czf system_backup.tar.gz / --exclude='/proc' --exclude='/sys' --exclude='/tmp'2. 软件分发
# 打包源代码
tar -czf myapp-1.0.tar.gz myapp/
# 创建发布包
tar -czf release.tar.gz --exclude='*.git' --exclude='*.o' src/3. 日志归档
# 归档旧日志文件
tar -czf logs_2024.tar.gz /var/log/*.log
# 按日期归档日志
tar -czf logs_$(date +%Y%m%d).tar.gz /var/log/4. 数据库备份
# 备份数据库文件
tar -czf database_backup.tar.gz /var/lib/mysql/
# 备份并保留权限
tar -czpf database_backup.tar.gz /var/lib/mysql/高级用法
1. 流式处理
# 通过管道传输
tar -czf - /source/ | ssh user@remote "tar -xzf - -C /destination/"
# 远程备份
ssh user@remote "tar -czf - /remote/path/" | tar -xzf - -C /local/path/2. 多卷归档
# 创建多卷归档(每个文件最大100MB)
tar -czf - /large/directory/ | split -b 100m - archive.tar.gz.3. 并行压缩
# 使用pigz进行并行gzip压缩
tar -cf - /source/ | pigz > archive.tar.gz
# 使用pbzip2进行并行bzip2压缩
tar -cf - /source/ | pbzip2 > archive.tar.bz2常见文件扩展名
扩展名压缩方式命令示例.tar无压缩tar -cf.tar.gzgziptar -czf.tgzgziptar -czf.tar.bz2bzip2tar -cjf.tar.xzxztar -cJf.tar.Zcompresstar -cZf性能优化技巧
1. 选择合适的压缩算法
# 快速压缩(gzip)
tar -czf archive.tar.gz files/
# 高压缩率(xz)
tar -cJf archive.tar.xz files/
# 平衡选择(bzip2)
tar -cjf archive.tar.bz2 files/2. 并行处理
# 使用pigz并行压缩
tar -cf - files/ | pigz -p 4 > archive.tar.gz
# 使用pbzip2并行压缩
tar -cf - files/ | pbzip2 -p4 > archive.tar.bz2故障排除
1. 常见错误
# 权限不足
sudo tar -czf backup.tar.gz /etc/
# 磁盘空间不足
df -h# 检查磁盘空间
tar -czf backup.tar.gz --exclude='/large/directory' /
# 文件名过长
tar -czf backup.tar.gz --transform 's/.*\///' files/2. 验证归档完整性
# 测试归档文件
tar -tzf archive.tar.gz
# 验证提取
tar -tzf archive.tar.gz | wc -l
tar -xzf archive.tar.gz && echo "提取成功"示例脚本
自动备份脚本
#!/bin/bash
# 自动备份脚本
BACKUP_DIR="/backup"
SOURCE_DIR="/home/user"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_${DATE}.tar.gz"
# 创建备份
tar -czf "${BACKUP_DIR}/${BACKUP_FILE}" \
--exclude='*.cache' \
--exclude='*.tmp' \
"${SOURCE_DIR}"
# 删除7天前的备份
find "${BACKUP_DIR}" -name "backup_*.tar.gz" -mtime +7 -delete
echo "备份完成: ${BACKUP_FILE}"批量解压脚本
#!/bin/bash
# 批量解压tar文件
for file in *.tar.gz; do
if [ -f "$file" ]; then
echo "解压文件: $file"
tar -xzf "$file"
fi
done总结
tar 是 Linux 系统中功能强大的归档工具,具有以下特点:
[*]多功能性: 可以创建、查看、提取归档文件
[*]压缩支持: 支持多种压缩算法(gzip、bzip2、xz)
[*]灵活性: 支持排除文件、保留权限、增量备份等
[*]兼容性: 几乎所有 Linux 系统都预装
[*]效率: 支持流式处理和并行压缩
掌握 tar 命令的使用,可以有效地进行文件备份、软件分发和系统管理。
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
页:
[1]