• 压缩打包


    压缩打包

    压缩打包介绍

    ​ windows下我们接触最多的压缩文件就是.rar格式, 但Linux有自己所特有的压缩工具。 如果希望windows和Linux互相能使用的压缩工具, 建议.zip`格式

    压缩的好处主要有:

    节省磁盘空间占用率
    节省网络传输带宽消耗
    网络传输更加快捷

    类型
    格式 压缩工具
    .zip zip压缩工具
    .gz gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    .bz2 bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    .tar.gz 先使用tar命令归档打包,然后使用gzip压缩
    tar.bz2 先使用tar命令归档打包,然后使用bzip压缩

    注意:

    1.linux下常用的压缩文件以.tar.gz

    2.linux下压缩文件必须带后缀

    gzip压缩工具

    #安装gzip压缩工具
    [root@db04 ~]# yum install -y gzip
    #创建文件
    [root@db04 ~]# echo 123  >> file1
    #压缩file1
    [root@db04 ~]# gzip file1
    #查看文件
    [root@db04 ~]# ll
    总用量 4
    -rw-r--r-- 1 root root 30 6月  23 17:31 file1.gz
    #查看文件类型
    [root@db04 ~]# file file1.gz
    file1.gz: gzip compressed data, was "file1", from Unix, last modified: Sun Jun 23 17:31:54 2019
    #查看gzip压缩后的文件内容
    [root@db04 ~]# zcat file1.gz
    123
    #解压文件
    [root@db04 ~]# gzip -d file1.gz
    #查看文件
    [root@db04 ~]# ll
    总用量 4
    -rw-r--r-- 1 root root 4 6月  23 17:31 file1
    
    练习题:
    	把/etc目录 拷贝/root下,找到/root/etc/下面所有一级二级目录中的 普通文件,压缩
    	[root@oldboyedu ~]# find /root/etc/ -maxdepth 2 -type f|xargs  gzip
    

    注意:

    1.gzip不可以压缩目录,只能压缩文件

    2.gzip压缩的文件不在当前目录下

    3.压缩会删除源文件

    4.解压会删除压缩文件

    zip压缩工具

    -r:递归压缩

    	#压缩
    	[root@oldboyedu ~]# zip zls.zip file1
    	#解压
    	[root@oldboyedu ~]# unzip zls.zip
    	Archive:  zls.zip
    	replace file1? [y]es, 	 [n]o, 				[A]ll, 			[N]one, 			[r]ename:
    					替换 	不替换				替换所有		啥也不做			改名
    	#压缩目录
    	[root@oldboyedu tmp]# zip -r tmp_dir2.zip /tmp/
    

    注意:

    1.压缩不会删除源文件

    2.解压不会删除压缩文件

    3.解压后会覆盖源文件内容

    tar压缩文件

    tarlinux下最常用的压缩与解压缩, 支持文件和目录的压缩归档

    #语法:tar [-zjxcvfP] filename 
    c   //创建新的归档文件
    x   //对归档文件解包
    t   //列出归档文件里的文件列表
    v   //输出命令的归档或解包的过程
    f   //指定包文件名,多参数f写最后
    C   //指定解压目录位置
    z   //使用gzip压缩归档后的文件(.tar.gz)
    j   //使用bzip2压缩归档后的文件(.tar.bz2)
    J   //使用xz压缩归档后的文件(tar.xz)
    X   //排除多个文件(写入需要排除的文件名称)
    h   //打包软链接
    P   //连带绝对路径打包
    --hard-dereference  //打包硬链接
    --exclude   //在打包的时候写入需要排除文件或目录
    
    
    //常用打包与压缩组合
    czf     //打包tar.gz格式
    cjf     //打包tar.bz格式
    cJf     //打包tar.xz格式
    
    zxf     //解压tar.gz格式
    jxf     //解压tar.bz格式
    xf      //自动选择解压模式
    tf      //查看压缩包内容
    
    //以gzip归档方式打包并压缩
    tar czf  test.tar.gz  test/ test2/
    
    //以bz2方式压缩 
    tar cjf  test.tar.bz2 dir.txt dir/
    
    //打包链接文件,打包链接文件的真实文件
    [root@zls ~]# cd /
    [root@zls /]# tar czfh local.tar.gz  etc/rc.local
    
    
    #打包/tmp下所有文件
    [root@zls ~]# cd /
    [root@zls /]# find tmp/ -type f | xargs tar czf tmp.tar.gz      
    #打包/tmp下所有文件
    [root@zls /]# tar czf tmp.tar.gz | xargs find tmp/ -type f
    #打包/tmp下所有文件
    [root@zls /]# tar czf tmp.tar.gz $(find tmp/ -type f)
    

    注意:

    • 不要使用绝对路径

      如果非要打包绝对路径:[root@oldboyedu ~]# tar zcfP b.sh.tar.gz /usr/local/nginx/a.sh
      解压的时候:[root@oldboyedu ~]# tar xfP b.sh .tar.gz

    • tar打包可以接多个文件f

      tar zcf abc1 .tar.gz 1.txt 2.txt 3.txt

    排除文件,并打包压缩

    #排除单个文件
    [root@zls /]#  tar czf etc.tar.gz --exclude=etc/services etc/
    
    #排除多个文件
    [root@zls /]# tar czf etc.tar.gz --exclude=etc/services --exclude=etc/rc.local etc/
    
    [root@zls /]# tar czf etc.tar.gz --exclude=etc/{services,passwd,shadow,gshadow,group}
    
    #将需要排除的文件写入文件中
    [root@zls /]# cat paichu.list
    etc/services
    etc/rc.local
    etc/rc.d/rc.local
    #指定需要排除的文件列表, 最后进行打包压缩
    [root@zls /]# tar czfX etc.tar.gz paichu.list etc/
    

    解压压缩文件

    //解包或者解压缩
    [root@zls /]# tar xf  test.tar.gz      
    
    //将tar.gz解压至其他目录
    [root@student ~]# tar xf /etc/local.tar.gz  -C /tmp
    

    注意:不管是打包还是解包,源文件是不会删除,但会覆盖当前已经存在的文件或者目录

    小结

    格式 压缩工具
    .zip zip压缩工具 zip -r dir.zip dirname zip file.zip filename
    .bz2 gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    .tar.gz 先使用tar命令归档打包,然后使用gzip压缩
    tar zcf dirname.tar.gz dirname
    .tar.bz2 先使用tar命令归档打包,然后使用bzip压缩
    tar cjf dirname.tar.bz2 dirname
    .tar.xz tar cJf dirname.tar.xz dirname

    常用打包与压缩组合

    	czf     //打包tar.gz格式
    	cjf     //打包tar.bz格式
    	cJf     //打包tar.xz格式
    
    	xf      //自动选择解压模式
    	tf      //查看压缩包内容
    
  • 相关阅读:
    memcache启动程序/etc/sysconfig/memcached
    shell中的点号
    mysql监控
    secureCRT 中文乱码
    memcache key
    杀死所以数据库进程
    导出表记录
    重建二叉树
    从尾到头打印链表
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/1naonao/p/11155173.html
Copyright © 2020-2023  润新知