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