Linux下使用tar命令进行数据备份与提取(还原)指南
tar是Linux系统中最常用的归档与压缩工具,适用于文件/目录级的完整备份或部分恢复,支持gzip、bzip2等多种压缩方式,操作灵活且功能强大。
创建未压缩的tar归档文件
使用tar -cvf命令将指定目录打包为.tar文件(不压缩,保留原始文件结构):
tar -cvf backup.tar /path/to/directory
-c:创建新的归档文件;-v:显示打包过程的详细信息(可选,大型目录建议关闭以提升速度);-f:指定归档文件名(必须紧跟文件名)。/home/user/Documents目录到docs_backup.tar:tar -cvf docs_backup.tar /home/user/Documents
创建压缩的tar归档文件
为节省存储空间,可将归档文件压缩,常用gzip(.tar.gz)或bzip2(.tar.bz2)格式:
tar -czvf backup.tar.gz /path/to/directory
-z:调用gzip压缩,归档文件后缀为.tar.gz。tar -cjvf backup.tar.bz2 /path/to/directory
-j:调用bzip2压缩,归档文件后缀为.tar.bz2。/var/www/html目录到web_backup.tar.gz:tar -czvf web_backup.tar.gz /var/www/html
解压未压缩的tar文件
使用tar -xvf命令将.tar文件解压到当前目录:
tar -xvf backup.tar
-x:解包归档文件;docs_backup.tar到当前目录:tar -xvf docs_backup.tar
解压压缩的tar文件
根据压缩格式选择对应参数,解压到当前目录:
tar -xzvf backup.tar.gz
-z:调用gzip解压。tar -xjvf backup.tar.bz2
-j:调用bzip2解压。web_backup.tar.gz到当前目录:tar -xzvf web_backup.tar.gz
解压到指定目录
若需将文件还原到特定目录,使用-C参数指定目标路径(目录需提前存在):
tar -xzvf backup.tar.gz -C /target/directory
示例:将web_backup.tar.gz解压到/var/www/html目录:
tar -xzvf web_backup.tar.gz -C /var/www/html
保留文件权限与属性
添加-p参数可保留文件的权限、所有者、时间戳等信息,确保恢复后文件与原文件一致:
tar -czvpf backup.tar.gz /path/to/directory
-p:保留文件权限(重要用于系统文件备份)。
排除不需要备份的文件/目录
使用--exclude参数排除特定文件或目录(支持通配符),减少备份体积:
tar -czvf backup.tar.gz --exclude='./cache' --exclude='*.tmp' /path/to/directory
示例:备份/home/user目录,但排除cache文件夹和所有.tmp文件:
tar -czvf home_backup.tar.gz --exclude='./cache' --exclude='*.tmp' /home/user
分割大型备份文件
若备份文件超过存储设备容量(如大于1GB),可使用split命令分割归档文件:
tar -czvf - /path/to/directory | split -b 1G - backup_part.tar.gz.
split -b 1G:将输入分割为每部分1GB;backup_part.tar.gz.aa、backup_part.tar.gz.ab等。cat backup_part.tar.gz.* | tar -xzvf -
/home到/home/backup),防止分区故障导致数据丢失;建议备份到外部磁盘或单独分区。tar -g(生成快照文件)实现增量备份(仅备份修改过的文件),节省时间和存储空间。