linux打包压缩命令tar的总结
linux打包压缩命令tar的总结详细介绍
以下是关于 Linux 中 tar 命令的详细总结,涵盖常用功能、选项及示例:
一、核心功能
tar 是 Linux 中用于打包和压缩文件 / 目录的常用工具,支持多种压缩格式(如 .tar.gz、.tar.bz2、.tar.xz 等),本身负责打包,需结合压缩工具(如 gzip、bzip2、xz)实现压缩。
二、常用选项
| 选项 | 功能描述 |
|---|---|
| -c | 创建新的归档文件(Create) |
| -x | 提取归档文件中的内容(Extract) |
| -t | 查看归档文件内容(List) |
| -z | 调用 gzip 压缩 / 解压(对应 .tar.gz) |
| -j | 调用 bzip2 压缩 / 解压(对应 .tar.bz2) |
| -J | 调用 xz 压缩 / 解压(对应 .tar.xz) |
| -v | 显示详细操作过程(Verbose,可选) |
| -f | 指定归档文件名(File,必须紧跟文件名,且通常放在选项最后) |
| -C | 解压时指定目标目录(Change directory) |
| --exclude | 排除指定文件或目录(支持通配符,如 --exclude="*.log") |
| -p | 保留文件权限(Preserve permissions) |
| -P | 保留绝对路径(默认会移除开头的 /,谨慎使用) |
| -k | 解压时不覆盖已存在文件(Keep existing files) |
| --append | 向已有归档文件中追加内容(Append) |
三、典型用法示例
1. 创建压缩包(打包并压缩)
| 压缩格式 | 命令格式 | 示例(压缩 data 目录为 data.tar.gz) |
|---|---|---|
.tar.gz |
tar -czvf 目标文件 源文件/目录 |
tar -czvf data.tar.gz data/ |
.tar.bz2 |
tar -cjvf 目标文件 源文件/目录 |
tar -cjvf data.tar.bz2 data/ |
.tar.xz |
tar -cJvf 目标文件 源文件/目录 |
tar -cJvf data.tar.xz data/ |
| 仅打包(不压缩) | tar -cvf 目标文件 源文件/目录 |
tar -cvf data.tar data/ |
- 说明:
-c(创建)+ 压缩选项(z/j/J)+-v(详细)+-f(指定文件名)。
2. 解压压缩包
| 压缩格式 | 命令格式 | 示例(解压到当前目录) |
|---|---|---|
.tar.gz |
tar -xzvf 归档文件 |
tar -xzvf data.tar.gz |
.tar.bz2 |
tar -xjvf 归档文件 |
tar -xjvf data.tar.bz2 |
.tar.xz |
tar -xJvf 归档文件 |
tar -xJvf data.tar.xz |
| 解压到指定目录 | tar -xzvf 归档文件 -C 目标目录 |
tar -xzvf data.tar.gz -C /opt/data/ |
3. 查看归档内容
bash
归档文件
- 显示归档内的文件列表(名称、大小、时间等)。
4. 追加文件到已有归档
bash
归档文件 新文件/目录
- 注意:仅适用于未压缩的
.tar文件,压缩格式(如.tar.gz)不支持追加。
5. 排除指定文件 / 目录
bash
归档文件 源目录
- 示例:排除
data目录下的所有.log文件:bashdata.tar.gz data/
6. 保留权限与路径
- 保留文件权限(解压时):bash
归档文件 - 保留绝对路径(谨慎使用,可能导致文件解压到根目录):bash
归档文件
7. 压缩级别调整(以 gzip 为例)
-z等价于-gz,默认压缩级别为 6(平衡速度与压缩比)。- 调整级别:
-z1(最快,压缩比低)到-z9(最慢,压缩比高)。bashdata.tar.gz data/
四、注意事项
- 选项顺序:
-f通常放在所有选项最后,且必须紧跟文件名(如tar -czvf file.tar.gz dir/,不能写成tar -fczv file.tar.gz dir/)。 - 相对路径:默认以相对路径打包,解压时会在当前目录重建目录结构;若需从根目录开始,使用绝对路径(如
/data)。 - 压缩工具依赖:使用
-z/-j/-J时,系统需安装对应工具(gzip/bzip2/xz,一般默认安装)。 - 大文件处理:
xz压缩比最高但速度最慢,gzip平衡,bzip2介于两者之间,根据需求选择。
五、命令速查表
| 操作场景 | 命令示例(以 .tar.gz 为例) |
对应其他格式调整(替换压缩选项) |
|---|---|---|
| 创建压缩包 | tar -czvf archive.tar.gz file1 file2 dir/ |
.tar.bz2:-cjvf;.tar.xz:-cJvf |
| 解压 | tar -xzvf archive.tar.gz |
.tar.bz2:-xjvf;.tar.xz:-xJvf |
| 查看内容 | tar -tvf archive.tar.gz |
同上 |
| 解压到指定目录 | tar -xzvf archive.tar.gz -C /target/dir |
同上 |
| 排除文件 | tar -czvf archive.tar.gz --exclude="*.tmp" dir/ |
同上 |
追加文件(仅 .tar) |
tar --append -vf archive.tar new_file |
仅适用于未压缩的 .tar 文件 |
通过以上总结,可覆盖 tar 命令的大多数日常使用场景,建议根据文件大小和压缩需求选择合适的压缩格式和选项。