linux tar、tar.gz、tar.bz2、tar.xz、tgz 解压方式

tar命令

tar 通常用于将多个文件和目录 打包成一个归档文件,通常带有 .tar 扩展名,此时 没有压缩

tar 本身不压缩文件,但可以与压缩工具(如 gzip 或 bzip2)结合使用,创建压缩的归档文件,后缀是 .tar.gz 或 .tar.bz2

参数

  • -z:通过gzip方式压缩或解压,最后以.tar.gz 为后缀
  • -c(小写):新建打包文件
  • -x:解压缩
  • -v:压缩或解压过程中,显示出来过程(文件名)
  • -f:后面是压缩包的路径
  • -C(大写):解压缩到指定路径
  • -j:通过bzip2方式压缩或解压,最后以.tar.br2 为后缀。压缩后大小小于.tar.gz
  • --no-same-owner:解压后的文件、文件夹 所属用户、用户组为当前操作的用户
    如果是 普通用户,默认加此参数,不需要指定;
    如果是 root,需要 加上此参数,否则解压的文件所属用户可能会显示数字,保留压缩时的用户

打包(不是压缩)

是将若干文件、目录打包成一个文件

语法

tar -cvf archive.tar file1 file2 directory

解释:

  • v:可省略,省略后,打包时不显示文件列表
  • cf:不能省略,否则不能运行

将若干文件打包

tar -cvf 1.txt.tar 1.txt 2.txt

执行结果,因为有 v,会显示文件列表,如下:

1.txt
2.txt

将目录打包

tar -cvf student.tar student

将若干文件、目录打包

tar -cvf 1.tar 1.txt 2.txt student ceshi

因为有参数 v,所以会显示列表,如下:

1.txt
2.txt
student/
student/李雷.txt
student/lucy.txt
ceshi/

解包

解包 .tar 命令:

tar -xvf  包名.tar

解包 .tar 到某目录下:

tar -xvf  包名.tar  -C 目录(该目录必须存在)

查看压缩包内文件名

tar -tvf test.tar

解释:

  • -t: 列出归档文件中的内容
  • -v: 显示详细输出,列出归档文件中的所有文件和目录
  • -f: 指定要列出内容的归档文件的名称

执行结果:

-rw-r--r-- root/root         6 2025-05-06 13:33 1.txt
-rw-r--r-- root/root         5 2025-05-06 13:15 2.txt

压缩

压缩 .tar.gz

tar -zcvf  xxx.tar.gz 要压缩的目录

解释:

-c: 创建新的归档文件
-z: 使用 gzip 压缩归档文件
-v: 显示详细输出,列出被添加到归档中的文件
-f: 指定归档文件的名称

注意: z 不能在最后,否则必须存在 xxx.tar.gz 文件,否则报错

例子
tar -zcvf jdk.tar.gz  jdk1.8.0_271/

不携带用户名、用户组等身份信息(推荐)

在使用 tar 压缩文件时,默认会保留文件的所有者(用户)、所属组、UID/GID 等元数据。

在 另一台电脑 解压缩时,压缩包中的用户、用户组 与 系统用户、用户组 匹配不上,导致不能正确显示用户名、用户组(一般显示 1000、1000),会导致权限冲突。

所以需排除这些身份相关信息,可通过 --no-same-owner,如下:

tar -zcvf jdk.tar.gz  jdk1.8.0_271/ --no-same-owner

解释:

  • --no-same-owner:压缩时不保留原始文件的所有者(用户)和所属组,统一映射为当前执行【用户 / 组】(或 root,取决于权限);解压时也不会尝试恢复原始所有者。

不携带权限(不推荐)

tar -zcvf jdk.tar.gz  jdk1.8.0_271/  --no-same-permissions
  • --no-same-permissions:可选:不保留原始文件的权限(如 755/644),使用 tar 默认权限(通常为 644 文件 /755 目录),避免跨系统权限冲突。

查看压缩包内文件名

tar -ztvf test.tar.gz

解释:

  • -t: 列出归档文件中的内容
  • z : 使用 gzip 压缩归档文件
  • -v: 显示详细输出,列出归档文件中的所有文件和目录
  • -f: 指定要列出内容的归档文件的名称

执行结果:

-rw-r--r-- root/root         6 2025-05-06 13:33 1.txt
-rw-r--r-- root/root         5 2025-05-06 13:15 2.txt

解压

解压 .tar.gz 包命令:

tar -zxvf ×××.tar.gz

解释:

  • -z: 表示要使用 gzip 解压归档文件。
  • -x: 表示解压操作。
  • -v: 表示详细输出,列出被解压的文件。
  • -f ×××..tar.gz: 指定要解压的归档文件的名称

注意: z 不能在末尾,否则报错

解压 .tar.gz 包命令:

tar -zxvf ×××.tar.gz

解压 .tar.gz 包到指定目录:

注意:目录必须存在

tar -zxvf ×××.tar.gz -C 目录

解压 .tar.bz2 :

tar -jxvf ×××.tar.bz2

解压 .tar.xz :

xz -d  xxx.tar.xz

解压 .tgz

tar zxvf xxx.tgz --no-same-owner

问题:解压后所属用户、用户组是数字

https://www.malaoshi.top/show_1IX2wbqvdRdL.html


原文出处:/show_1C7ar5gneZ6.html