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

    本文涉及的命令:gzip、zcat、bzip2、bzcat、tar、dump、restore、mkiosfs、cdrecord、dd、cpio。

    概念:

    1. 几种基础压缩的概念:
      1. 计算机最小单位是字节,但数据存储过程中有些字节中有些位数据没有使用,但计算机会填0,有的压缩技术就是利用复杂的算法将本应该是空的位【丢】出来。
      2. 另一种压缩就是将重复出现的内容进行解释。从而降低文件容量。
    2. 几种常见的压缩扩展名
      1. *.Z    compress 程序压缩的档案;(过时,不用了)
      2. *.gz    gzip 程序压缩的档案;
      3. *.bz2    bzip2 程序压缩的档案;
      4. *.tar    tar 程序打包的数据,并没有压缩过;
      5. *.tar.gz   tar 程序打包的档案,其中并且经过 gzip 的压缩
      6. *.tar.bz2   tar 程序打包的档案,其中并且经过 bzip2 的压缩
    3. dump备份工具
      1. 分等级备份,完整备份、差异备份
      2. 当待备份的文件为单一文件系统时可使用完整的dump功能。
      3. 当备份的资料为目录,并非单一文件系统,则备份资料必须在同一目录下,且只能使用完整备份,不支持 -u 选顷,即无法建立 /etc/dumpdates 这个各别 level 备份的时间记录文件;(详细请见后面命令解释)
    4. dd备份工具
      1. 可备份分区或磁盘,可实现磁盘对拷,无需格式化。

    命令:

    1. gzip [-cdtv#] 档名   【可接重定向符,保留原档】
      • -c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
      • -d :解压缩的参数;
      • -t :可以用来检验一个压缩文件的一致性~看看档案有无错误;
      • -v :可以显示出原档案/压缩文件案的压缩比等信息;
      • -# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是-6
      • 查看:zcat 档名.gz
    2. bzip2 [-cdkzv#] 档名
      • -c :将压缩的过程产生的数据输出到屏幕上!
      • -d :解压缩的参数
      • -k :保留源文件,而不会删除原始的档案喔!
      • -z :压缩的参数
      • -v :可以显示出原档案/压缩文件案的压缩比等信息;
      • -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
      • 查看:bzcat 档名.bz2
    3. tar---------文件的打包
      1. tar [-j|-z] [cv] [-f 建立的档名] filename... <==打包与压缩
      2. tar [-j|-z] [tv] [-f 建立的档名] <==察看档名
      3. tar [-j|-z] [xv] [-f 建立的档名] (可接打包档案中的某个档案名)[-C 目录] <==解压缩
        • -c :建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename)
        • -t :察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开,-c, -t, -x 不可同时使用
        • -j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
        • -z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
        • -v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
        • -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选顷!
        • -C 目录 :这个选顷用在解压缩,若要在特定目录解压缩,可以使用这个选顷。
        • -p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
        • -P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
        • --exclude=FILE:在压缩的过程中,不要将 FILE 打包!
      4. 例:
        1. 先由 find 找出比 /etc/passwd 还要新的档案
          1. find /etc -newer /etc/passwd
        2. 使用 tar 来进行打包吧!日期为 2008/09/29
          1. tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2008/09/29" /etc/*(此处有点问题)
    4. dump [-Suvj] [-level] [-f 备份档] 待备份资料 -----------备份
      • -S :仅列出后面的待备份数据需要多少磁盘空间才能够备份完毕;
      • -u :将这次 dump 的时间记录到 /etc/dumpdates 档案中;
      • -v :将 dump 的档案过程显示出来;
      • -j :加入 bzip2 的支持!将数据进行压缩,默认 bzip2 压缩等级为 2
      • -level:就是我们谈到的等级,从 -0 ~ -9 共十个等级;
      • -f :类似 tar ,后面接产生的档案,亦可接例如 /dev/st0 装置文件名等
      • -W :列出在 /etc/fstab 里面的具有 dump 设定的 partition 是否有备份过?
    5. restore----------dump的还原      还原时需要进入档需要还原的目录下!
      1. restore -t [-f dumpfile] [-h] <==用来察看 dump 档
      2. restore -C [-f dumpfile] [-D 挂载点] <==比较dump与实际档案
      3. restore -i [-f dumpfile] <==进入互动模式
      4. restore -r [-f dumpfile] <==还原整个文件系统
        • -t :此模式用在察看 dump 起来的备份文件中都有什么重要数据!类似 tar -t功能
        • -C :此模式可以将 dump 内的数据拿出来跟实际的文件系统做比较,最终会列出『在 dump 档案内有记录的,且目前文件系统不一样』的档案;
        • -i :进入互动模式,可以仅还原部分档案,用在 dump 目录时的还原!
        • -r :将整个 filesystem 还原的一种模式,用在还原针对文件系统的 dump 备份
        • -h :察看完整备份数据中的 inode 与文件系统 label 等信息。
        • -f :后面就接你要处理的那个 dump 档案。
        • -D :与 -C 进行搭配,可以查出后面接的挂载点与 dump 内有不同的档案!
    6. mkiosfs---------建立映像档
      1. mkisofs [-o 映像档] [-rv] [-m file] 待备份文件.. [-V vol] -graft-point isodir=systemdir ...
        • -o :后面接你想要产生的那个映像档档名。
        • -r :透过 Rock Ridge 产生支持 Unix/Linux 的档案数据,可记录较多的信息;
        • -v :显示建置 ISO 档案的过程
        • -m file :-m 为排除档案 (exclude) 的意思,后面的档案不备份到映像档中
        • -V vol :建立 Volume,有点像 Windows 在档案总管内看到的 CD title 的东西
        • -graft-point:graft有转嫁或移植的意思,
    7. cdrecord---------光盘刻录工具
      1. cdrecord -scanbus dev=ATA <==查询刻录机位置
      2. cdrecord -v dev=ATA:x,y,z blank=[fast|all] <==抹除重复读写片
      3. cdrecord -v dev=ATA:x,y,z -format <==格式化DVD+RW
      4. cdrecord -v dev=ATA:x,y,z [可用选顷功能] file.iso
        • [可用选顷功能] 主要是写入 CD/DVD 时可使用的选顷,常见的选顷包括有:
        • -data :指定后面的档案以数据格式写入,不是以 CD 音轨(-audio)方式写入!
        • speed=X :指定刻录速度,例如CD可用 speed=40 为40倍数,DVD则可用 speed=4 之类
        • -eject :指定刻录完毕后自动退出光盘
        • fs=Ym :指定多少缓冲存储器,可用在将映像档先暂存至缓冲存储器。预设为 4m,一般建议可增加到 8m ,不过,还是得规你的刻录机而定。
          • 针对 DVD 的选顷功能:
            • driveropts=burnfree :打开 Buffer Underrun Free 模式的写入功能
            • -sao :支持 DVD-RW 的格式
    8. dd if="input_file" of="output_file" bs="block_size"  count="number"------建立文档、备份 (可实现磁盘对拷,无需格式化)
      • if :就是 input file,也可以是装置
      • of :就是 output file,也可以是装置
      • bs :规划的一个 block 的大小,若未指定则预设是 512 bytes(一个 sector 的大小)
      • count:多少个 bs 的意思。
    9. cpio---------备份
      1. cpio -ovcB > [file|device] <==备份
      2. cpio -ivcdu < [file|device] <==还原
      3. cpio -ivct < [file|device] <==察看
        1. 备份会使用到的选顷与参数:
          • -o :将数据 copy 输出到档案或装置上
          • -B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes ! 这样的好处是可以让大档案的储存速度加快。
        2. 还原会使用到的选顷与参数:
          • -i :将数据自档案或装置 copy 出来系统当中
          • -d :自动建立目录!使用 cpio 所备份的数据内容不见得会在同一层目录中,因此我们必项要让cpio 在还原时可以建立新目录。
          • -u :自动的将较新的档案覆盖较旧的档案!
          • -t :需配合 -i 选顷,可用在"察看"以 cpio 建立的档案或装置的内容
        3. 一些可共享的选顷与参数:
          • -v :让储存的过程中文件名可以在屏幕上显示
          • -c :一种较新的 portable format 方式储存

    提示:本文为《鸟哥linux私房菜基础篇》阅读笔记,不详细的地方请自行阅读该书。

  • 相关阅读:
    3.5---用栈实现队列(CC150)
    3.3---集合栈(CC150)
    3.2---最小栈(CC150)
    3.1---一个数组实现三个栈(CC150)
    2.7---判断链表是否是回文(CC150)
    SpringCloud实战5-Feign声明式服务调用
    Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】
    Spring Cloud Eureka 自我保护机制
    Spring Cloud Edgware新特性之七:可选的EnableDiscoveryClient注解
    Spring Cloud 声明式服务调用 Feign
  • 原文地址:https://www.cnblogs.com/guojintao/p/5717679.html
Copyright © 2011-2022 走看看