一、使用介绍

1、名词区分

打包:将一大堆文件或目录变成一个总的文件【tar命令】

压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】

Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

2、tar语法

语法:tar [主选项+辅选项] 文件或目录

使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

主选项:【一条命令以下5个参数只能有一个】

-c: --create 新建一个压缩文档,即打包

-x: --extract,--get解压文件

-t: --list,查看压缩文档里的所有内容

-r:--append 向压缩文档里追加文件

-u:--update 更新原压缩包中的文件

辅助选项:

-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz

-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2

-v:显示操作过程!这个参数很常用

-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!

-C:切换到指定目录

--exclude FILE:在压缩过程中,不要将FILE打包

二、例子

1、打包

习惯上以.tar后缀代表tar包,用xxx.tar.gz或.tgz代表gzip压缩过的tar文件,用.tar.bz2代表bzip2压缩过的tar文件。

将img1和img2两个文件夹打包成img.tar,仅打包不压缩

liuxiaoyan@development:~/test$ tar -cvf img.tar img1 img2
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ ls
img1 img2 img.tar

将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩

liuxiaoyan@development:~/test$ tar -zcvf img.tar.gz img1 img2
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ ls
img1 img2 img.tar img.tar.gz

将img1和img2两个文件夹打包成img.tar.bz2,打包后,以bzip2来压缩

liuxiaoyan@development:~/test$ tar -jcvf img.tar.bz2 img1 img2
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ ls
img1 img2 img.tar img.tar.bz2 img.tar.gz

2、不解压的情况下查看

查看img.tar中的所有内容

liuxiaoyan@development:~/test$ tar -tf img.tar
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png

查看img.tar.gz的所有内容

加-v参数查看详细信息,-z可有可无

liuxiaoyan@development:~/test$ tar -tf img.tar.gz
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ tar -ztf img.tar.gz
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ tar -ztvf img.tar.gz
drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/
-rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.png
drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:10 img2/
-rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png

查看img.tar.bz2内容

加-v参数查看详细信息,-j可有可无

liuxiaoyan@development:~/test$ tar -tf img.tar.bz2
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ tar -jtf img.tar.bz2
img1/
img1/102.png
img1/101.png
img1/100.png
img2/
img2/105.png
img2/104.png
img2/103.png
liuxiaoyan@development:~/test$ tar -jtvf img.tar.bz2
drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/
-rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.png
drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:10 img2/
-rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png
-rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png

3、解压

将img.tar减压到temp目录

liuxiaoyan@development:~/test$ cd temp/
liuxiaoyan@development:~/test/temp$ ls
liuxiaoyan@development:~/test/temp$ tar -xf ../img.tar
liuxiaoyan@development:~/test/temp$ ls
img1 img2

只减压img.tar中的img1

liuxiaoyan@development:~/test/temp$ tar -xf ../img.tar img1
liuxiaoyan@development:~/test/temp$ ls
img1

4、更新

现在给movies文件下新建一个文件movie2.txt,然后更新enjoy.tar

$ tar -cf img.tar img1 img2
给img1增加了一张照片,现在用下面命令更新img.tar
$ tar -uf img.tar img1

5、追加

$ tar -cf img.tar img1 img2
img.tar里追加一个文件夹img3
$ tar -rf img.tar img3

6、-C参数

-C(大C参数很有用,改变文件目录,多层时用)  -C, --directory=DIR        change to directory DIR

使用了-C参数改变目录为-C后面 目录,不管是在打包还是解压都很有用。

用法:tar temp.tar file -C fileDir

$ cd temp
$ ls
img1 img2 img3
$ tar -cf img.tar temp/*
这样打包会将temp目录也打包进去,使用下面带有-C参数的命令可以去掉路径信息
$ tar -cf img.tar * -C temp

解压img.tar到当前目录下的temp目录

$ tar -xf img.tar -C temp

三、解压方法总结

1、*.tar 用 tar –xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、*.tar.gz和*.tgz 用 tar –xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar –xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar –xZf 解压

8、*.rar 用 unrar x 解压

9、*.zip 用 unzip 解压

使用unrar注意

先安装unrar,使用unrar不带参数运行一下就可以看到帮助信息。

如果一个文件s.rar,里面有1000首歌,用e参数,就直接把1000首歌全减压出来到当前目录。

如果是x参数,解压后,所有内容都放在同名的文件夹里面。

资源链接:

Linux常用命令之压缩打包篇(gzip、gunzip、tar、zip、bzip2)

每天一个linux命令(28):tar命令

转载http://www.cnblogs.com/starof/p/4229017.html

[转]Linux tar 命令的更多相关文章

  1. linux tar命令 压缩、打包、解压 详解

    linux tar命令 压缩.打包.解压 详解 1.常用压缩命令 tar –czvf 压缩后的文件.tar.gz 要压缩的文件 2.常用解压命令 tar –xzvf 解压后的文件.tar.gz [要解 ...

  2. Linux tar命令之--exclude参数 排除指定的文件或目录

    https://my.oschina.net/u/3285916/blog/1632552 参数: --exclude 打包时排除不需要处理的文件或目录 说明: tar -zcf a.tar.gz 打 ...

  3. Linux tar命令高级用法——备份数据

    Linux tar命令高级用法——备份数据 2015-12-31 Linux学习 Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件 ...

  4. 学习Linux tar 命令:最简单也最困难

    摘要:在本文中,您将学习与tar 命令一起使用的最常用标志.如何创建和提取 tar 存档以及如何创建和提取 gzip 压缩的 tar 存档. 本文分享自华为云社区<Linux 中的 Tar 命令 ...

  5. linux tar命令简介

    一.使用介绍 1.名词区分 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文 ...

  6. linux tar命令

    tar命令打包还是压缩需要看所调用的命令参数....tar在使用时可以调用命令参数, 比如tar -xvf +文件名就是解包,但是不是解压...只有在使用了参数z等调用gzip等 压缩命令时才是压缩或 ...

  7. Linux tar 命令用法

    tar 命令可以为linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar 最初被用来在磁带上创建档案,现在,用户 ...

  8. linux Tar 命令参数详解

    tar命令 . 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. . 格式 tar [主选项+辅选项] 文件或目录 eg: tar z ...

  9. linux tar 命令

    tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件! ...

随机推荐

  1. su root认证失败的解决方法

    sudo passwd 输入安装密码. 输入新密码. 输入 su 即获得root权限.

  2. 前馈网络求导概论(一)·Softmax篇

    Softmax是啥? Hopfield网络的能量观点 1982年的Hopfiled网络首次将统计物理学的能量观点引入到神经网络中, 将神经网络的全局最小值求解,近似认为是求解热力学系统的能量最低点(最 ...

  3. 图论 - 寻找fly真迹

    一天fly正坐在课堂上发呆,突然,他注意到了桌面上的一个字符串S1S2S3S4...Sn,这个字符串只由字符"a","b"和"c"构成.刚好 ...

  4. 国内外三个不同领域巨头分享的Redis实战经验及使用场景

    Redis不是比较成熟的memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充.现在有越来越多的应用也在纷纷基于Redis做架构的改造.首先简单公布一下Redis平台实际情况 ...

  5. Android Activity task 相关属性

    所谓的 task ,是指用户完成某一项任务时与之交互的一组 Activity.比如用户要向开发者汇报 bug,先打开程序主页,然后打开关于页面,再点击报告 bug 按钮,打开编辑邮件页面.当前这三个 ...

  6. 黑马程序员----java基础笔记下(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 目录--- 21.字符编码 22.javaswig 事件 23.socket 网络通讯 24.网 ...

  7. java并发编程(十五)内存可见两种方式 加锁和volatile

    1.volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制. ...

  8. C++基础_总结

    (1)多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) 多态分为两种:静态和动态.静态主要包括函数重载和模板:动态主要是依靠虚函数实现的. 静态联编:重载函数不加virtual关键字 ...

  9. linux 用户管理(一)

    本节内容梗概: 1.用户管理配置文件 2.用户管理命令 3.用户组管理命令 4.批量添加用户 5.用户授权 学东西先讲原理,所以从配置文件入手 1.用户信息文件  /etc/passwd 存放了用户的 ...

  10. 浅谈C#中常见的委托<Func,Action,Predicate>(转)

    一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不 ...