Linux 【01- tar命令超详细教程】 Linux tar 命令超详细完整教程一、tar 基础介绍tar全称tape archiveLinux 最常用打包/压缩工具核心分两类操作打包仅把多个文件/目录合成一个.tar文件不压缩体积不变压缩打包打包 压缩生成.tar.gz/.tar.bz2/.tar.xz等压缩包通用语法tar[参数]打包文件名 待打包文件/目录二、必记核心参数分功能记忆1. 主操作参数必选三选一参数作用-ccreate创建新压缩/打包文件-xextract解压包文件-tlist查看包内文件列表不解压2. 压缩算法参数可选搭配-c使用参数压缩格式后缀特点无仅打包.tar无压缩速度最快-zgzip 压缩.tar.gz/.tgz均衡速度压缩率最常用-jbzip2 压缩.tar.bz2压缩率更高速度慢-Jxz 压缩.tar.xz压缩率最高速度最慢3. 高频辅助参数参数作用-vverbose显示详细过程打印每个处理的文件-ffile指定打包文件名必须放在所有参数最后-C解压到指定目录大写C-P保留绝对路径慎用解压会覆盖系统路径--excludexxx打包时排除指定文件/目录-N 2026-01-01只打包指定日期之后修改的文件-r向已存在的.tar包追加文件仅无压缩tar支持-u更新包内文件仅无压缩tar-O解压单个文件输出到标准输出不生成本地文件简写技巧参数可合并tar -zcvftar zcvf省略减号三、完整实操示例最常用场景创建归档文件场景1打包不压缩生成 .tar# 打包 test 目录为 test.tar显示过程tarcvf test.tar ./test/# 静默打包不加v不输出日志tarcf test.tar ./test/# 打包多个文件/目录tarcvf all.tar file1.txt file2.log /home/user/docs-c: 创建新的归档文件-v: 显示详细输出列出被添加到归档中的文件-f: 指定归档文件的名称场景2压缩打包生产最常用 tar.gz# gzip 压缩打包目录tarzcvf test.tar.gz ./test/# 打包多个目录tarzcvf backup.tar.gz /var/log /home/www# bz2 高压缩打包tarjcvf test.tar.bz2 ./test/# xz 极限压缩打包tarJcvf test.tar.xz ./test/场景3查看压缩包内文件不解压# 查看 tar.gztarztvf test.tar.gz# 查看 tar.bz2tarjtvf test.tar.bz2# 查看普通tar包tartvf test.tar场景4解压压缩包解压归档文件4.1 解压到当前目录# 解压 tar.gztarzxvf test.tar.gz# 解压 tar.bz2tarjxvf test.tar.bz2# 解压 tar.xztarJxvf test.tar.xz# 解压普通tar包tarxvf test.tar-x: 解压归档文件-v: 显示详细输出列出被解压的文件-f: 指定要解压的归档文件的名称4.2 解压到指定目录-C# 解压到 /tmp 文件夹tarzxvf test.tar.gz-C/tmp/# 先创建目录再解压常用备份脚本写法mkdir-p/data/backuptarzxvf backup.tar.gz-C/data/backup4.3 只解压包内某一个文件/文件夹# 只解压包里的 logs 目录到当前tarzxvf backup.tar.gz logs/# 只解压单个文件tarzxvf backup.tar.gz www/index.html-C/tmp四、进阶高级用法1. 打包时排除文件/目录 --exclude# 打包test目录排除里面的tmp文件夹和.log日志tarzcvf test.tar.gz ./test--exclude./test/tmp--exclude*.log# 排除多个目录支持通配符tarzcvf web.tar.gz /www--exclude/www/cache--exclude/www/upload/*.zip2. 追加文件到 tar 包仅无压缩.tar可用gzip/bz2/xz压缩包不支持追加# 先打包tarcf files.tar ./doc# 追加新文件 readme.txttarrf files.tar readme.txt3. 增量备份只打包指定时间后修改的文件# 只打包2026-01-01之后修改的文件tarzcvf new_backup.tar.gz ./data-N2026-01-014. 管道配合远程备份不生成本地文件本地打包直接传到远程服务器# 打包本地/data通过ssh直接解压到远程 /backuptarzcvf - /data|sshroot192.168.1.100tar zxvf - -C /backup-代表标准输入/输出省去中间本地压缩包。5. 解压文件输出到标准输出不落地磁盘# 读取包内config.json直接打印到终端tarzxOf test.tar.gz config.json6. 保留绝对路径打包慎用 -P默认tar会去掉路径开头/防止解压覆盖系统文件如需保留tarzcPf fullpath.tar.gz /etc/nginx# 解压时也会恢复 /etc/nginx 绝对路径tarzxPf fullpath.tar.gz五、不同压缩格式对比选型格式命令适用场景.tartar cvf内网传输、后续追加文件不追求压缩.tar.gztar zcvf通用首选平衡速度与压缩率几乎所有系统支持.tar.bz2tar jcvf空间紧张、文件大不在乎耗时.tar.xztar Jcvf超大文件归档压缩率最高压缩最慢六、常见报错与避坑指南错误f参数必须放最后错误写法tar zfcv test.tar.gz ./test正确写法tar zcvf test.tar.gz ./test-f后紧跟文件名必须所有参数末尾。解压提示无法识别压缩格式.tar.gz 用-z.bz2 用-j.xz 用-J格式不匹配会报错。分不清格式先执行tar tvf xxx查看不用加压缩参数。压缩包不能追加文件.tar.gz/.bz2/.xz不支持-r追加只能解压后重新打包。解压出现大量./前缀正常现象打包时相对路径生成不影响使用如需绝对路径加-P。权限不足解压报错加sudo执行或-C解压到自己有权限的目录。七、生产环境常用模板直接复制使用1. 网站目录每日备份tarzcvf web_$(date%Y%m%d).tar.gz /home/www--exclude/home/www/runtime--exclude*.log2. 日志打包清理tarzcvf log_backup.tar.gz /var/log--exclude/var/log/journal3. 一键解压到指定目录mkdir-p/opt/softtarzxvf soft.tar.gz-C/opt/soft4. 查看包内目录结构tarztvf backup.tar.gz|less