在Linux系统中,`tar`(Tape Archive)是常用的归档工具,用于打包、压缩文件和目录。以下是创新互联建站在Linux下多年的实战下总结出的TAR命令使用方法:
一、Linux系统下TAR基础语法
tar [选项] [文件/目录]
常用选项:
打包(不压缩):
`-c`:创建新归档文件
`-f`:指定归档文件名(必须紧跟在`-f`后)
`-v`:显示详细打包过程
示例:
tar -cvf backup.tar /home/user/documents # 将documents目录打包为backup.tar
解包:
`-x`:解压归档文件
`-C`:指定解压目标目录(可选)
示例:
tar -xvf backup.tar -C /tmp/ # 解压到/tmp目录
查看归档内容:
`-t`:列出归档文件中的内容
tar -tf backup.tar # 查看backup.tar包含的文件
二、压缩与解压缩TAR命令
`tar`常结合压缩算法使用,常用选项:
gzip压缩(.tar.gz或.tgz):
`-z`:调用gzip压缩/解压缩
示例:
# 压缩
tar -czvf backup.tar.gz /home/user/documents
# 解压缩
tar -xzvf backup.tar.gz -C /tmp/
bzip2压缩(.tar.bz2):
`-j`:调用bzip2压缩/解压缩(压缩率更高,但速度较慢)
示例:
tar -cjvf backup.tar.bz2 /home/user/documents
tar -xjvf backup.tar.bz2 -C /tmp/
xz压缩(.tar.xz):
`-J`:调用xz压缩/解压缩(最高压缩率,适合大文件)
示例:
tar -cJvf backup.tar.xz /home/user/documents
tar -xJvf backup.tar.xz -C /tmp/
三、TAR的高级用法
1. 排除特定文件/目录:
`--exclude`:排除指定内容(支持通配符)
示例:
tar -czvf backup.tar.gz --exclude="*.log" --exclude="temp" /home/user # 排除所有.log文件和temp目录
2. 增量备份:
`--newer`:只打包比指定时间新的文件
示例:
tar -czvf backup.tar.gz --newer="2023-01-01" /home/user # 备份2023年1月1日之后修改的文件
3. 保留权限与属性:
`-p`:保留文件权限和属性(适合系统备份)
示例:
tar -cpvf system_backup.tar /etc /var/log # 备份系统配置文件
四、TAR命令在Linux中实战场景
1. 备份整个用户目录:
tar -czvf user_backup.tar.gz /home/user
2. 解压软件包到当前目录:
tar -xzvf software.tar.gz # 解压到当前目录
3. 备份网站目录(排除缓存):
tar -czvf website_backup.tar.gz --exclude="cache" --exclude="logs" /var/www/html
五、Linux下用常见问题
1. 解压时提示“权限不足”:
使用`sudo`提升权限(如解压系统文件时):
sudo tar -xzvf backup.tar.gz -C /
2. 忘记压缩选项导致文件未压缩:
检查文件名后缀(如`.tar`表示未压缩,`.tar.gz`表示已压缩),确保使用对应选项(`-z`/`-j`/`-J`)。
3. 解压到错误目录:
使用`-C`明确指定目标目录,避免覆盖重要文件。
六、TAR命令记忆口诀
打包:`tar -cvf`(Create + Verbose + File)
解包:`tar -xvf`(eXtract + Verbose + File)
压缩:`tar -czvf`(gZip + Create + Verbose + File)
解压缩:`tar -xzvf`(gZip + eXtract + Verbose + File)
掌握这些Linux下的命令后,你可以高效地管理Linux系统中的文件归档与压缩任务!