zoukankan      html  css  js  c++  java
  • Linux下打包命令tar

    转:http://blog.chinaunix.net/uid-29021161-id-3922752.html

    Linux下最常用的打包程序是tar,用tar命令打成的包文件通常以.tar结尾

    1.名词解释

    打包:是指将若干文件,目录合成一个文件,可以理解为装到一个文件里去了;
    压缩:是指将一个大文件通过压缩算法变成一个小文件;

    打包的意思
    (1). Linux中很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,得先借助打包工具将这一大堆文件先打成一个包,然后再用压缩程序来对这个包进行压缩;
    (2). 移动文件时比较方便(搬家时,我们需要把小东西收纳到收纳容器里);

    Linux中常见包文件后缀

    .tar          tar程序打包的数据,没有压缩过

    .tar.gz     tar程序打包的文件,并且经过gzip压缩
    .tar.bz2   tar程序打包的文件,并且经过bzip2压缩

    2. 命令格式

    tar命令主要参数:

    -c :建立打包文件
    -t :查看打包文件的内容含有哪些文件名
    -x :解包或解压缩的功能,可以搭配-C (大写) 在特定目录解开

    备注:-c, -t, -x不可同时出现(原因不用说了吧)

    -j : 使用bzip2进行压缩/解压缩,文件名默认为*.tar.bz2;
    -z :使用gzip进行压缩/解压缩,文件名默认为*.tar.gz;
    -v :在压缩/解压缩的过程中,将正在处理的文件名显示出来;
    -f : -f后面要立刻接要被处理的文件名,不要再加参数,也可以把-f单独写一个选项;
    -C :这个选项用在解压缩,后面跟目录,目的就是把文件解压缩到指定的目录;
    -p :保留数据的原本权限与属性,常用于备份(-c);
    -P :保留绝对路径,也就是说允许备份数据中含有根目录存在之意;
    -r : 向打包文件里面追加文件。例如用户已经打包好文件,又发现还有一个目录或是一些文件忘记打包了,这时可以使用该选项,将忘记的目录或文件追加到打包的文件中;
    --exclude=FILE:在压缩的过程中,不要将FILE打包;
    -u :更新文件。就是说用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后;
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中;

    3. 举例

    (1)tar -cf bak.tar ./*.log
    将当前目录下的所有log文件打成一个叫做bak.tar的包;

    (2)tar -rf bak.tar ./*.txt
    将当前目录下的所有txt文件增加到bak.tar的包里;

    (3)tar -uf bak.tar ./tc.txt
    更新包bak.tar中tc.txt文件,若原来没有则追加;

    (4)tar -tf bak.tar
    列出bak.tar包中所有文件;

    (5)tar -xf bak.tar
    解出bak.tar包中所有文件;

    (6)tar -czf bak.tar.gz ./*.log
    将当前目录下所有log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包;

    (7)tar -xzf bak.tar.gz
    将bak.tar.gz文件先用gzip解压,解包;

    (8)tar -cjf bak.tar.bz2 ./*.log
    将当前目录下所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

    (9)tar -xjf bak.tar.bz2
    将bak.tar.bz2文件先用bzip2解压,解包;

    (10)tar -z[j]tvf bak.tar.gz(bz2) tc.log
    从包bak.tar.gz(bz2)里只解压出文件tc.log;

    (11)tar -cpjf bak.tar.bz2 ./*.log
    将当前目录下所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包,并且保留文件权限;

    (12)tar --exclude=./sys.log -jcv -f bak.tar.bz2 ./*.log
    将当前目录下除sys.log以外所有log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

    (13)tar -N "2010/10/08" -jcv -f bak.tar.gz ./*.log
    将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用gzip压缩生成的包名为bak.tar.gz的包;

    (14)tar --newer-mtime="2010/10/08" -jcv -f bak.tar.bz2 ./*.log
    将当前目录下所有修改日期比"2010/10/08"新的log文件打成一个用bzip2压缩生成的包名为bak.tar.bz2的包;

    (15)tar -tv -f bak.tar.gz(bz2)
    查看bak.tar.gz(bz2)里面的内容;

  • 相关阅读:
    【JavaWeb】SpringBoot配置静态资源路径
    apache和nginx设置反向代理
    【other】idea格式化快捷键ctr+alt+L与qq锁定冲突
    【深入Java基础】各个Map类的比较与总结
    【EmguCv】瞳孔定位(二)
    【深入Java基础】LinkedHashMap的特点与原理
    彪神666(暴力即可)
    被打脸的潇洒哥(推递推式)
    送气球.jpg(模拟)
    赌神(逆向思维)
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/3341346.html
Copyright © 2011-2022 走看看