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系统!