1.1 Linux 系统常见的压缩指令
  常见压缩文件案扩展名对应压缩指令:
    *.Z              compress 程序压缩的文件;
    *.zip              zip 程序压缩的文件;
    *.gz               gzip 程序压缩的文件;
    *.bz2             bzip2 程序压缩的文件;
    *.xz                xz 程序打包的文件;
    *.tar               tar 程序打包的数据,并没有压缩过;
    *.tar.gz             tar 程序打包的文件,其中并且经过 gzip 的压缩;
    *.tar.bz2              tar 程序打包的文件,其中并且经过 bzip2 的压缩;
    *.tar.xz              tar 程序打包的文件,其中并且经过 xz 的压缩;
1.1.1 gzip,zcat/zmore/zless/zgrep
  gzip [-cdtv#] 档名
  zcat 档名.gz
  选项与参数:
    -c:将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
    -d:解压缩的参数;
    -t :可以用来检验一个压缩文件的一致性
    -v:可以显示出原文件/压缩文件案的压缩比等信息;
    -#:# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差,-9 最慢,但是压缩比最好!预设是 -6
1.1.2 bzip2,bzcat/bzmore/bzless/bzgrep
  bzip2 [-cdkzv#] 档名
  bzcat 档名.bz2
  选项与参数:
    -c:将压缩的过程产生的数据输出到屏幕上!
    -d:解压缩的参数;
    -k:保留源文件,而不会删除原始的文件;
    -z:压缩的参数(默认值,可不加);
    -v:可以显示出原文件/压缩文件案的压缩比等信息;
    -#:与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快!
1.1.3 xz,xzcat/xzmore/xzless/xzgrep
  xz [-dtlkc#] 档名
  xcat 档名.xz
  选项与参数:
    -d:解压缩参数
    -t :测试压缩文件的完整性,看有没有错误
    -l :列出压缩文件的相关信息
    -k:保留原来的文件不删除
    -c:将压缩数据由屏幕上输出
    -#:压缩比参数
1.1.4 打包指令:tar        常用于磁带机的备份
  tar [-z|-j|-J] [cv] [-f 待建立的新档名] filename        打包与压缩
  tar [-z|-j|-J] [tv] [-f 既有的 tar档名]             观察档名
  tar [-z|-j|-J] [xv] [-f 既有的 tar档名] [-C 目录]          解压缩
  选项与参数:
    -c:建立打包文件,可搭配 -v 来查看过程中被打包的档名(filename)
    -t :查看打包文件的内容含有哪些档名,重点在查看【档名】
    -x :解打包或解压缩的功能,可以搭配 -C 在特定目录解开
    -z:透过 gzip 的支持进行压缩/解压缩,此时档名最好为 *.tar.gz
    -j :透过 bzip2 的支持进行压缩/解压缩,此时档名最好为 *.tar.bz2
    -J:透过 xz 的支持进行压缩/解压缩,此时档名最好为 *.tar.xz
    -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项!
    -C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
    -p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
    -P:保留绝对路径,亦即允许备份数据中含有根目录存在之意
    --exclude=FILE:在压缩过程中,不要将 FILE 打包
  tar -[-z|-j|-J] xv -f 打包档.tar.bz2 待解开档名
  范例一:解开打包文件内的其中一个文件。
    1、先找到我们要的档名,假设解开 shadow 文件
    tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
    2、将该文件解开
    tar -jxv -f /root/etc.tar.bz2 etc/shadow 
  范例二:打包某目录,但不含该目录下的某些文件,打包 /etc/ /root 这几个重要目录,却不想打包 /root/etc* 开头的文件,新打包文件放置为 /root/system.tar.bz2(这个文件自己不要打包自己),--exclude 不包含的意思。
    tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.bar.bz2 /etc /root
  范例三:仅备份比某个时刻还要新的文件
    1、先由 find 找出比 /etc/passwd 还要新的文件
    find /etc -newer /etc/passwd
    2、查看 /etc/passwd 文件修改日期
    ll /etc/passwd
    3、使用 tar 来进行打包,并设置日期
    tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2015/06/17" /etc/*
    4、显示出文件
    tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 | grep -v '/$'
  基本名称:tarfile        仅打包后的文件
       tarball        打包压缩后的文件1
1.1.5 XFS 文件系统备份 xfsdump
  xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份档] 待备份资料
  xfsdump -I
  选项与参数:
    -L:xfsdump 会记录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明
    -M:xfsdump 可以记录存储媒体的标头,这里可以填写此媒体的简易说明
    -l :是 L 的小写,就是指定等级有 0~9 共10个等级,预设为 0,即完整备份
    -f :有点类似 tar !后面接产生的文件,亦可接例如 /dev/st0 装置文件名或其他一般文件档名等
    -I :是 i 的大写,从 /var/lib/xfsdump/inventory 列出目前备份的信息状态
  注:
    xfsdump 不支援没有挂载的文件系统备份!
    xfsdump 必须使用 root 权限才能操作(涉及文件系统的关系)
    xfsdump 只能备份 XFS 文件系统
    xfsdump 备份下来的数据(文件或储存媒体)只能让 xfsrestore 解析
    xfsdump 是透过文件系统的 UUID 来分辨各个备份档,因此不能备份两个具有相同 UUID 的文件系统
1.1.6 XFS 文件系统还原 xfsrestore
  xfsrestore -I            用来查看备份文件资料,是 i 的大写
  xfsrestore [-f 备份档] [-L S_label] [-s] 待复原目录    单一文件系统复原
  xfsrestore [-f 备份文件] -r 待复原目录         透过累积备份文件来复原
  xfsrestore [-f 备份文件] -i 待复原目录         进入互动模式
  选项与参数:
    -I:是 i 的大写,可查询备份数据,包括 Label 名称与备份时间
    -f:后面接的就是备份档!
    -L:就是 session 的 label name,可用 -I 查询到的数据,在这个选项后输入
    -s:需要接某特定目录,亦即仅复原某一个文件或目录
    -r:如果是用文件来储存备份数据,那这个就不需要使用。如果是一个磁带内有多个文件,需要这东西来达成累积复原
    -i :进入互动模式,进阶管理员使用
 1.1.7 dd 制作文件/备份文件
  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 的意思