当前位置:首页>Linux>Linux tar 命令完全指南

Linux tar 命令完全指南

  • 2026-09-02 19:43:19
Linux tar 命令完全指南

Linux tar 命令完全指南

文件归档压缩工具 · Linux 必备技能

tar [主选项] [辅助选项] [文件...]

一、tar 是什么?

tar(Tape Archive)是 Linux/Unix 系统中用于打包和压缩文件的命令。它可以将多个文件或目录合并成一个归档文件(.tar),并支持 gzip、bzip2、xz 等压缩格式。

tar 是备份、传输、分发软件的标准工具,Linux 源码、配置文件等通常以 .tar.gz 或 .tar.bz2 的形式发布。

二、主选项(必选其一)

-c, --create              创建新的归档文件-x, --extract, --get   从归档中提取文件-t, --list             列出归档内容-r, --append           追加文件到归档-u, --update           更新归档中的文件-d, --diff, --compare  比较归档与文件系统差异

三、辅助选项

-v, --verbose            显示详细过程-z, --gzip             使用 gzip 压缩/解压 (.gz)-j, --bzip2            使用 bzip2 压缩/解压 (.bz2)-J, --xz               使用 xz 压缩/解压 (.xz)-f, --file=FILE        指定归档文件名-C, --directory=DIR    切换到指定目录-p, --preserve-permissions 保留权限--strip-components=N   提取时去掉前 N 层目录

四、实战示例

4.1 创建归档(打包)

# 打包目录tar -cvf archive.tar /path/to/directory# 打包多个文件tar -cvf files.tar file1.txt file2.txt file3.txt# 打包并压缩(gzip)tar -czvf archive.tar.gz /path/to/directory# 打包并压缩(bzip2)tar -cjvf archive.tar.bz2 /path/to/directory# 打包并压缩(xz,最强压缩)tar -cJvf archive.tar.xz /path/to/directory

4.2 查看归档内容

# 列出归档内容tar -tvf archive.tar# 详细列出(包括权限、大小)tar -tvf archive.tar.gz# 只看文件名tar -tf archive.tar | grep ".conf$

4.3 提取归档

# 解压到当前目录tar -xvf archive.tar# 解压到指定目录tar -xvf archive.tar -C /target/directory# 解压 .tar.gztar -xzvf archive.tar.gz# 解压 .tar.bz2tar -xjvf archive.tar.bz2# 解压 .tar.xztar -xJvf archive.tar.xz# 解压单个文件tar -xvf archive.tar specific-file.txt

4.4 追加文件

# 追加文件到归档tar -rvf archive.tar newfile.txt# 追加目录tar -rvf archive.tar ./newdirectory/

4.5 常用场景

# 备份整个用户目录tar -czvf backup.tar.gz /home/username# 备份配置文件tar -czvf config.tar.gz /etc/nginx /etc/apache2# 解压软件源码tar -xzvf nginx-1.20.0.tar.gz# 打包排除某些文件tar --exclude='*.log' --exclude='node_modules' -czvf app.tar.gz ./app# 查看压缩包大小ls -lh archive.tar.gz

五、压缩格式对比

格式          压缩比      速度      文件名gzip (.gz)    中等        快        archive.tar.gzbzip2 (.bz2)  较高        较慢      archive.tar.bz2xz (.xz)      最高        最慢      archive.tar.xz# 推荐选择:# - 快速压缩/解压:用 gzip# - 节省空间:用 xz# - 兼容性:用 gzip

六、高级技巧

# 远程打包传输(一条命令)tar -czvf - /path | ssh user@host "cat > backup.tar.gz"# 增量备份tar -N "2024-01-01" -czvf backup.tar.gz /data# 排除目录tar --exclude='.git' --exclude='node_modules' -czvf code.tar.gz ./project# 保留符号链接指向的原始文件tar -chvf archive.tar /path/to/symlink# 显示归档大小(解压后)tar -czf - /directory | wc -c

七、常见问题

Q: tar 和 zip 有什么区别? A: tar 只打包不压缩,zip 既是打包又是压缩。tar 可以配合 gzip/bzip2/xz 实现更高压缩比。

Q: 解压时提示 "Cannot open: Permission denied"? A: 需要 sudo 权限,或者解压到有写权限的目录。

Q: 如何只解压某个目录中的文件? A: 使用 --wildcards,如:tar -xvf archive.tar --wildcards "path/to/*"


💡 经验总结

1. 记住主选项:c=创建、x=提取、t=列表 2. 常用组合:czvf、xzvf、tvf 3. -f 后面必须跟文件名 4. 先 t 测试,再 x 提取

最新文章

随机文章