zoukankan      html  css  js  c++  java
  • linux文件压缩与打包

    在linux中常见的压缩命令

    首先,在linux中压缩文件的扩展名大多是

    *.gz  gzip程序压缩的文件

    *.bz2  bzip2程序压缩的文件

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

    *.tar.gz  tar程序打包的文件,经过gzip压缩

    *.tar.bz2  tar程序打包的文件,经过bzip2压缩

    gzip

    gzip在不加参数的时候,默认会将文件以-6压缩,生成原名称为[文件名+扩张名+.gz]的文件,并且源文件不保留,

    -c  将压缩的数据输出到屏幕上,可以通过输出重定向来处理

        gizp -c 1.txt > 1.txt.gz

    -d  解压缩

    -f  当压缩或者解压缩的时候,若文件已经存在,强制覆盖

        gzip -f 1.txt

        gzip -df 1.txt.gz

    -l  列出压缩文件内容

        gzip -l 1.txt.gz

    -q  屏蔽所有的警告,安静的进行压缩

    -r  递归将目录中的文件压缩

    -t  用来检测一个压缩文件的一致性

    -v  可以显示源文件/压缩文件的压缩比等

    -#  压缩等级,-1最快,-9最慢但是压缩比最好,默认为-6

    bzip2

    bzip2在不加参数的时候,会将文件压缩成文件名为[源文件名+源文件扩展名+.bz2]的文件,和gzip一样,源文件不会保留

    -d  解压缩

    -f  当压缩或者解压缩的时候,若文件已经存在,强制覆盖

    -t  用来检测一个压缩文件的一致性

    -z  压缩的参数

    -k  保留原始文件,不会删除原始文件的哦

        bzip2 -k 1.txt

    -v  可以显示源文件/压缩文件的压缩比等

    -#  压缩等级,-1最快,-9最慢但是压缩比最好,默认为-6

    tips:gzip和bzip2仅能对单一的文件进行压缩,虽然能够针对目录进行压缩,但也只是将目录的内的所有文件分别进行压缩罢了.

    tar----神器

    -v  在压缩,解压缩的过程中,将正在处理的文档名显示出来

    -t  查看打包文件的内容

     -c  创建打包文件

    -C  解压缩,指定目录

    -O   将文件解开到标准输出

    -x  解压缩

    -j  bzip2压缩/解压缩,文档后缀*.tar.bz2

    -z  gzip压缩/解压缩,文档后缀*.tar.gz

    -f  后面要立刻接要被处理的文档名

    --exclude=file  在压缩过程中,忽略file打包

     1 bzip2格式压缩
     2 [root@iZ288fgkcpkZ default]# tar -cjf test.tar.bz2 tar/
     3 [root@iZ288fgkcpkZ default]# ls
     4 gzip  hardlink.php  index.html  info.php  symboliclink.php  tar  test.php  test.tar.bz2
     5 [root@iZ288fgkcpkZ default]# tar -tjf test.tar.bz2 
     6 tar/
     7 tar/3.txt
     8 tar/tar.txt
     9 tar/2.txt
    10 tar/1.txt
    11 
    12 gzip格式压缩
    13 [root@iZ288fgkcpkZ default]# tar -czf test.tar.gz tar/
    14 [root@iZ288fgkcpkZ default]# ls
    15 gzip  hardlink.php  index.html  info.php  symboliclink.php  tar  test.php  test.tar.bz2  test.tar.gz
    16 [root@iZ288fgkcpkZ default]# tar -tzf test.tar.gz 
    17 tar/
    18 tar/3.txt
    19 tar/tar.txt
    20 tar/2.txt
    21 tar/1.txt
    22 
    23 解压缩指定目录
    24 [root@iZ288fgkcpkZ default]# mkdir bak
    25 [root@iZ288fgkcpkZ default]# tar -xzvf test.tar.gz -C bak/
    26 tar/
    27 tar/3.txt
    28 tar/tar.txt
    29 tar/2.txt
    30 tar/1.txt
    31 [root@iZ288fgkcpkZ default]# ls bak/tar/
    32 1.txt  2.txt  3.txt  tar.txt
    33 
    34 压缩的时候忽略指定文件
    35 [root@iZ288fgkcpkZ default]# echo 'exclude' > tar/4.txt
    36 [root@iZ288fgkcpkZ default]# ls tar/
    37 1.txt  2.txt  3.txt  4.txt  tar.txt
    38 [root@iZ288fgkcpkZ default]# tar -czvf 2.tar.gz --exclude=tar/4.txt tar/
    39 tar/
    40 tar/3.txt
    41 tar/tar.txt
    42 tar/2.txt
    43 tar/1.txt
    44 [root@iZ288fgkcpkZ default]# tar -tzvf 2.tar.gz 
    45 drwxr-xr-x root/root         0 2015-07-28 12:17 tar/
    46 -rw-r--r-- root/root 118888897 2015-07-28 11:42 tar/3.txt
    47 -rw-r--r-- root/root     11556 2015-07-28 11:44 tar/tar.txt
    48 -rw-r--r-- root/root 118888897 2015-07-28 11:42 tar/2.txt
    49 -rw-r--r-- root/root        46 2015-07-28 12:00 tar/1.txt

    扩展问题

    ①,仅备份比某个时刻还要新的文件(如备份7.27之后的)
     1 拷贝文件到目录tar下,不修改属性
     2 [root@iZ288fgkcpkZ default]# cp -a index.html test.php tar/
     3 [root@iZ288fgkcpkZ default]# ll tar/
     4 总用量 232244
     5 drwxr-xr-x 2 root root      4096 7月  28 14:10 .
     6 drwxr-xr-x 5 www  www       4096 7月  28 14:06 ..
     7 -rw-r--r-- 1 root root        46 7月  28 12:00 1.txt
     8 -rw-r--r-- 1 root root 118888897 7月  28 11:42 2.txt
     9 -rw-r--r-- 1 root root 118888897 7月  28 11:42 3.txt
    10 -rw-r--r-- 1 root root         8 7月  28 12:17 4.txt
    11 -rwxr-xr-x 1 www  www         44 6月  12 2014 index.html
    12 -rw-r--r-- 1 root root     11556 7月  28 11:44 tar.txt
    13 -rw-r--r-- 1 root root       182 7月  27 18:39 test.php
    14 
    15 压缩打包时间为7月27日(含)之后的文件
    16 [root@iZ288fgkcpkZ default]# tar -czvf newer10.tar.gz --newer-mtime="2015-07-27 00:00:00" tar/
    17 tar/
    18 tar/3.txt
    19 tar/tar.txt
    20 tar/2.txt
    21 tar: tar/index.html: 文件未改变;未输出
    22 tar/4.txt
    23 tar/1.txt
    24 tar/test.php
    25 [root@iZ288fgkcpkZ default]# tar -tzvf newer10.tar.gz 
    26 drwxr-xr-x root/root         0 2015-07-28 14:10 tar/
    27 -rw-r--r-- root/root 118888897 2015-07-28 11:42 tar/3.txt
    28 -rw-r--r-- root/root     11556 2015-07-28 11:44 tar/tar.txt
    29 -rw-r--r-- root/root 118888897 2015-07-28 11:42 tar/2.txt
    30 -rw-r--r-- root/root         8 2015-07-28 12:17 tar/4.txt
    31 -rw-r--r-- root/root        46 2015-07-28 12:00 tar/1.txt
    32 -rw-r--r-- root/root       182 2015-07-27 18:39 tar/test.php

     实际问题

    1. 只解压缩包中的一个指定文件,并将其输出到标准输出

    tar -xzOf web12_im_log.tar.gz data/webroot/zhihuishu/application/logs/im/im-2016033012.log

  • 相关阅读:
    金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?
    分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
    阿里巴巴首部记录片问世:看哭所有创业者!
    【LBS】基于地理位置的搜索之微信 附近的人 简单实现
    【Linux】Linux 常用命令汇总
    【心灵鸡汤】为什么我会去云平台讲课
    【Mysql数据库访问利器】phpMyadmin
    【Java】一台服务器配置多个Tomcat
    tp5, laravel, yii2我该选择哪个
    网站升级2.0回滚机制
  • 原文地址:https://www.cnblogs.com/yingnan/p/4681252.html
Copyright © 2011-2022 走看看