LOADING...

加载中请稍等...

loading

Linux每日一篇 - 26 - tar

Linux归档压缩神器!掌握tar命令,轻松管理文件打包和压缩,让文件传输更便捷!

tar命令是什么?

tar(Tape Archive)是Linux中最常用的归档工具,可以将多个文件和目录打包成一个文件,并支持压缩。tar是备份和分发文件的重要工具。

基本用法

# 创建归档文件
tar -cvf archive.tar file1 file2 directory/

# 解压归档文件
tar -xvf archive.tar

# 查看归档文件内容
tar -tvf archive.tar

# 创建压缩归档文件(gzip)
tar -czvf archive.tar.gz directory/

# 解压压缩归档文件(gzip)
tar -xzvf archive.tar.gz

# 创建压缩归档文件(bzip2)
tar -cjvf archive.tar.bz2 directory/

# 解压压缩归档文件(bzip2)
tar -xjvf archive.tar.bz2

# 压缩/解压时指定目录
tar -czvf archive.tar.gz -C /path/to/source .
tar -xzvf archive.tar.gz -C /path/to/destination

实用技巧

# 创建压缩归档并显示进度
tar -czvf archive.tar.gz --verbose directory/

# 排除特定文件/目录
tar -czvf archive.tar.gz --exclude='*.log' --exclude='tmp/' directory/

# 只解压特定文件
tar -xzvf archive.tar.gz path/to/specific/file

# 更新归档文件
tar -uvf archive.tar newfile.txt

# 向归档追加文件
tar -rf archive.tar additional_file.txt

# 验证归档完整性
tar -tvf archive.tar

# 分卷压缩(处理大文件)
tar -czvf - directory/ | split -b 100M - archive.tar.gz.

# 合并分卷并解压
cat archive.tar.gz.* | tar -xz

# 比较归档和文件系统
tar -dvf archive.tar directory/

# 使用标准输入/输出
tar -czf - directory/ | ssh user@host "cat > archive.tar.gz"
ssh user@host "cat archive.tar.gz" | tar -xzf -

常用场景

# 备份整个目录
tar -czvf backup_$(date +%Y%m%d).tar.gz /home/user/

# 打包项目源代码
tar -czvf project.tar.gz --exclude='node_modules' --exclude='.git' /path/to/project/

# 解压软件包
tar -xzvf software.tar.gz

# 创建系统备份
tar -czvf system_backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp /

# 传输目录到远程服务器
tar -czvf - /path/to/directory/ | ssh user@remote "cat > archive.tar.gz && tar -xzf archive.tar.gz -C /destination/"

# 查看压缩包内容而不解压
tar -tzvf archive.tar.gz

# 恢复特定文件
tar -xzvf backup.tar.gz path/to/file/to/restore

关于我

全平台同名”汪多多是只猫”,专注分享实用技术教程,让你的IT学习之路更轻松!

关注我,每天一个Linux命令,轻松入门Linux系统!

头像
汪多多是只猫
失业的运维工程师
热爱开源与分享
微信公众号