Bootstrap

linux tar压缩文件命令,tar打包压缩文件命令

tar命令

tar命令用于将多个文件合成1个文件,wiki中把这个命令和cpio、shar等一起叫做archive文件,个人理解是归档,合成一个文件,后就可以用gzip、bz2、xz等工具进行压缩,同时也能方便在各个计算机间传输,有点类似windows下共享的zip文件。

wiki上这个图比较形象,tar把零散的文件合拢,gzip把合拢的文件压缩。

e3ddc8adec03484bec4f58f2956defb9.png

一、 命令语法

tar [选项...] [FILE]...

二、 选项详解

使用 tar --help命令能够阅读tar命令的详细用法解析。

示例

tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件archive.tar。

tar -tvf archive.tar # 详细列举归档文件 archive.tar中的所有文件。

tar -xf archive.tar # 展开归档文件 archive.tar中的所有文件。

选项

1、 主要选项:

-A, --catenate, --concatenate 追加 tar 文件至归档

-c, --create 创建一个新归档

-d, --diff, --compare 找出归档和文件系统的差异

--delete 从归档(非磁带!)中删除

-r, --append 追加文件至归档结尾

-t, --list 列出归档内容

--test-label 测试归档卷标并退出

-u, --update 仅追加比归档中副本更新的文件

-x, --extract, --get 从归档中解出文件

2、压缩选项

-a, --auto-compress 使用归档后缀名来决定压缩程序

-I, --use-compress-program=PROG ,通过 PROG 过滤(必须是能接受 -d 选项的程序)

-j, --bzip2 通过 bzip2 压缩归档

-J, --xz 通过 xz 压缩归档

-z, --gzip, --gunzip, --ungzip 通过 gzip 压缩归档

-Z, --compress, --uncompress 通过 compress 压缩归档

3、辅助选项

-v, --verbose 详细地列出处理的文件

-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备,*该选项后必须接打包的.tar**

三、使用示例

做试验的文件夹目录结构

12691705cfb9e3ff77e1d8759d8cbb5a.png

1、将bdir 打包成 bdir.tar

命令:tar -cvf bdir.tar bdir

6c89af7e5b176f7efe66b1be651239d5.png

打包之前是0为什么打包之后是12k,需要研究,可能不是单纯的合并。

d20ee0aae4cff167f67da9dfd5852d3b.png

2、把1.txt加入bdir.tar

命令:tar -rvf bdir.tar 1.txt

b5cfa5542dbdeeee0005a93ef0394c1f.png

3、打包adir、bdir到bdir.tar,但不打包其中的a.txt文件

命令:tar -cvf bdir.tar --exclude bdir/a.txt adir bdir

命令的语序为打包到哪个文件,哪些东西不要,描述总体需要加进去的文件。

91e17806693350ae2a25bf903a99d7cf.png

4、查看bdir.tar中的文件

命令:tar -tf bdir.tar,该命令同时可以查看使用-z,-j,-J打包压缩过的文件包中的内容

393bcfeb28ba29ad00cf709987284b38.png

注意如果包中文件过多,可在命令后加|less分屏显示

命令:tar -tf bdir.tar|less

5、把bdir.tar解压到当前目录下

命令:tar -xvf bdir.tar

a77842cfb3aca998c97d45ac51eb95a1.png

注意,解包操作会覆盖原始文件并且不会有提示。

6、将1.txt、adir、bdir打包再用gzip压缩(用其他压缩方式只需替换其中的z为j或J)

命令:tar -czvf bdir.tar.gz 1.txt adir bdir

ced27f621983474874c93847ea8b7b3f.png

查看其中的内容:

命令:tar -tf bdir.tar.gz

df47737ad58b174a9b10fc0d9fd74a94.png

解压包

命令:tar -xzvf bdir.tar.gz

4136e1d59ab4fe845a31cbbcd4365c66.png

补充知识:单独解压出包中个别文件

命令:```

cd /tmp

tar -xzvf /tarlearning/bdir.tar.gz bdir/a.txt

![](https://s4.51cto.com/images/blog/201801/07/6e6a85f831ce9ebf6d91432ff14fc62c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

;