zoukankan      html  css  js  c++  java
  • linux tar命令简介

    一、使用介绍

    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命令 

  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/starof/p/4229017.html
Copyright © 2011-2022 走看看