linux系列(二十二):tar命令

Posted Felix Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系列(二十二):tar命令相关的知识,希望对你有一定的参考价值。

1、命令格式

    tar[必要参数][选择参数][文件] 

2、命令功能

    用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

3、命令参数    

必要参数:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性

可选参数:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信息

4、常见解包/压缩命令

(1)、.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(2)、.tar.gz和.tgz

解包:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

(3)、.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

(4)、.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

 (5)、.rar

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName 

5、简单实例

 (1)、将文件打包成不同格式

命令:

tar -cvf t1.tar tar_test/    (仅打包,不压缩!)
tar -zcvf t2.tar.gz tar_test/   (打包后,以 gzip 压缩)
tar -jcvf t3.tar.bz2 tar_test/   (打包后,以 bzip2 压缩 )

输出:

[email protected]:~/test$ ls tar_test/
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
[email protected]-computer:~/test$ tar -cvf t1.tar tar_test/
tar_test/
tar_test/1.txt
tar_test/2.txt
tar_test/7.txt
tar_test/5.txt
tar_test/4.txt
tar_test/6.txt
tar_test/3.txt
[email protected]-computer:~/test$ ls
t1.tar  tar_test
[email protected]-computer:~/test$ tar -zcvf t2.tar.gz tar_test/
tar_test/
tar_test/1.txt
tar_test/2.txt
tar_test/7.txt
tar_test/5.txt
tar_test/4.txt
tar_test/6.txt
tar_test/3.txt
[email protected]-computer:~/test$ ls
t1.tar  t2.tar.gz  tar_test
[email protected]-computer:~/test$ tar -jcvf t3.tar.bz2 tar_test/
tar_test/
tar_test/1.txt
tar_test/2.txt
tar_test/7.txt
tar_test/5.txt
tar_test/4.txt
tar_test/6.txt
tar_test/3.txt
[email protected]-computer:~/test$ ls
t1.tar  t2.tar.gz  t3.tar.bz2  tar_test
[email protected]-computer:~/test$ 

(2)、查看tar包内有哪些内容

命令:

    tar -tvf t1.tar

    tar -ztvf t2.tar.gz

    tar -jtvf t3.tar.bz2

输出:

[email protected]:~/test$ tar -tvf t1.tar 
drwxr-xr-x felix/felix       0 2018-12-12 10:19 tar_test/
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/1.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/2.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/7.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/5.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/4.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/6.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/3.txt
[email protected]-computer:~/test$ tar -ztvf t2.tar.gz 
drwxr-xr-x felix/felix       0 2018-12-12 10:19 tar_test/
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/1.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/2.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/7.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/5.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/4.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/6.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/3.txt
[email protected]-computer:~/test$ tar -jtvf t3.tar.bz2 
drwxr-xr-x felix/felix       0 2018-12-12 10:19 tar_test/
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/1.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/2.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/7.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/5.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/4.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/6.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/3.txt
[email protected]-computer:~/test

(3)、打包的时候排除某些文件

命令:

tar --exclude tar_test/1* -zcvf tt.tar.gz tar_test/tar_test/  (使用--exclude)

输出:

[email protected]:~/test$ tar --exclude tar_test/1* -zcvf tt.tar.gz tar_test/tar_test/
tar_test/2.txt
tar_test/7.txt
tar_test/5.txt
tar_test/4.txt
tar_test/6.txt
tar_test/3.txt
[email protected]-computer:~/test$ ls tar_test/
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
[email protected]-computer:~/test$ tar -ztvf tt.tar.gz 
drwxr-xr-x felix/felix       0 2018-12-12 10:19 tar_test/
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/2.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/7.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/5.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/4.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/6.txt
-rw-r--r-- felix/felix       0 2018-12-12 10:19 tar_test/3.txt
[email protected]-computer:~/test$ 

 

以上是关于linux系列(二十二):tar命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux系列教程(二十二)——Linux的bash变量

Linux从青铜到王者第二十二篇:Linux高级IO

Linux常用命令(二十二)

第二十二章 Linux文件比较,文本文件的交集差集与求差:comm命令

linux介绍二十一-tar命令:压缩解压缩

《Linux命令行与shell脚本编程大全》第二十二章 gawk进阶