#tar 建议针对目录,打包压缩多个文件,不会改变文件的属性和权限
 用法:
 tar optino 打包压缩后的文件,需要打包压缩的文件
 选项:
-c         创建tar包
-f         指定包名
-v         显示详细信息
-z         使用gzip工具压缩
-j         使用bzip2工具压缩
-J         使用xz工具压缩
-t         查看tar包内容
-x         解压tar包
-C         指定解压路径
-r         追加文件到tar包
说明:
参数前面的“-”可有可无

# tar -cvf /tmp/DIR.tar dir/        # 将dir目录打包放在/tmp下取名叫DIR.tar
# tar -tf /tmp/DIR.tar            # 查看DIR.tar里面的内容
# tar -r /etc/hosts -f /tmp/DIR.tar    # 追加hosts文件到DIR.tar包里
# tar -tf /tmp/DIR.tar 
# tar -r inittab -f /tmp/DIR.tar 
# tar -tf /tmp/DIR.tar 
# tar -xf /tmp/DIR.tar -C backup/
# tar cvzf /tmp/$(date +%F).tar.gz backup/ dir/ test.gz 
# tar -xf /tmp/2017-07-18.tar.gz -C /tmp/aaa/
注意:
1、一般情况下,将-f参数放到所有参数的最后面
2、如果往tar包里面追加内容,那么尽可能写相对路径
示例:
查阅上述tar包内有哪些文件:

# tar -ztvf log.tar.gz
由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上z这个选项了。
将tar包解压缩:
# tar -zxvf /opt/soft/test/log.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的
只将tar内的部分文件解压出来:
# tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
我可以透过tar -ztvf来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!
文件备份下来,并且保存其权限:
# tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。
在文件夹当中,比某个日期新的文件才备份:
# tar -N "2012/11/13" -zcvf log17.tar.gz test
备份文件夹内容是排除部分文件:
# tar --exclude scf/service -zcvf scf.tar.gz scf/*

#zip兼容unix和windows,可以压缩多个文件或目录
用法:
压缩
zip [option] 压缩后的文件 需要压缩的文件(可以多个)
解压缩
unzip  需要解压的文件
unzip -d path  需要解压的文件
选项
zip 命令:是一个应用广泛的跨平台的压缩工具,压缩文件的后缀为 zip文件

-A 自动解压文件
-c 给压缩文件加注释
-d 删除文件
-F 修复损坏文件
-k 兼容 DOS
-m 压缩完毕后,删除源文件
-q 运行时不显示信息处理信息
-r 处理指定目录和指定目录下的使用子目录
-v 显示信息的处理信息
-x “文件列表” 压缩时排除文件列表中指定的文件
-y 保留符号链接
-b<目录> 指定压缩到的目录
-i<格式> 匹配格式进行压缩
-L 显示版权信息
-t<日期> 指定压缩文件的日期
-<压缩率> 指定压缩率

练习:
1、将/boot、/etc目录下所有的文件压缩到/tmp目录里,叫20170718.zip
# zip -r /tmp/$(date +%Y%m%d).zip /boot /etc

2、将20170718.zip文件解压到指定目录/backup里
# mkdir /backup
# unzip /tmp/20170718.zip -d /backup
# zip /tmp/$(date +%F).dir dir/
# unzip /tmp/2017-07-18.dir -d backup/

# zip -m myfile.zip ./rpm_info.txt      #向压缩文件中myfile.zip中添加rpm_info.txt文件
# zip -r filename.zip file1 file2 file3 /usr/work/school     #多个文件或目录,
# -x  排除指定文件的运用;压缩当前文件所有内容,出了 images和upload目录下的所有文件
# zip -r back.zip ./* -x "./images/*" -x "./upload/*"

#打包压缩--gzip
gzip 压缩速度快,压缩率低,CPU开销比较低
用法:
压缩
gzip 需要压缩的文件 [file1 file2 ...]
解压缩
gzip -d 需要解压的文件
gunzip 需要解压的文件
注意:
保留原文件需要加-r选项
-a或--ascii  使用ASCII文字模式。 
-c或--stdout或--to-stdout  把解压后的文件输出到标准输出设备。 
-f或-force  强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 
-h或--help  在线
-l或--list  列出压缩文件的相关信息。
-L或--license  显示版本与版权信息。 
-n或--no-name  解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理。 
-N或--name  解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。 
-q或--quiet  不显示警告信息。 
-r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。  
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>  更改压缩字尾字符串。  
-t或--test  测试压缩文件是否正确无误。  
-v或--verbose  显示指令执行过程。 
-V或--version 显示版本信息。

# tar cf test.tar -R test   #gzip不能压缩目录,先打包
# gzip test.tar             #压缩
# gzip -l test.tar.gz       #查看压缩包中的内容
# gzip -dv test.tar.gz     #解压
# gzip -rv /var/www    #递归的压缩目录
# gzip -dr test6     # 递归地解压目录

#打包压缩--bzip2
bzip2 压缩速度慢 压缩率高 CPU开销大
用法:
压缩
bzip2 需要压缩的文件
解压缩
bzip2 -d 需要解压的文件
bunzip2 需要解压的文件
选项
-c --stdout
将数据压缩或解压缩至标准输出。
-d --decompress
强制解压缩。 bzip2, bunzip2 以及 bzcat 实际上是同一个程序,进行何种操作将根据程序名确定。 指定该选项后将不考虑 
这一机制,强制 bzip2 进行解压缩。
-z --compress
-d 选项的补充:强制进行压缩操作,而不管执行的是哪个程序。
-t --test
检查指定文件的完整性,但并不对其解压缩。 实际上将对数据进行实验性的解压缩操作,而不输出结果。
-f --force
强制覆盖输出文件。通常 bzip2 不会覆盖已经存在的文件。该选项还强制 bzip2 打破文件的硬连接,缺省情况下 bzip2 不 
会这么做。
-k --keep
在压缩或解压缩时保留输入文件(不删除这些文件)。
-s --small
在压缩、 解压缩及检查时减少内存用量。 采用一种修正的算法进行压缩和测试, 每个数据块仅需要 2.5 个字节。 这意味着 
任何文件都可以在 2300k 的内存中进行解压缩, 尽管速度只有通常情况下的一半。
在压缩时,-s将选定 200k 的块长度,内存用量也限制在 200k 左右, 代价是压缩率会降低。 总之,如果机器的内存较少 
(8兆字节或更少), 可对所有操作都采用-s选项。参见下面的内存管理。
-q --quiet
压制不重要的警告信息。属于 I/O 错误及其它严重事件的信息将不会被压制。
-v --verbose
详尽模式 -- 显示每个被处理文件的压缩率。 命令行中更多的 -v 选项将增加详细的程度, 使 bzip2 显示出许多主要用于 
诊断目的信息。
-L --license -V --version
显示软件版本,许可证条款及条件。
-1 to -9
在压缩时将块长度设为 100 k、200 k .. 900 k。 对解压缩没有影响。参见下面的内存管理。
--
将所有后面的命令行变量看作文件名,即使这些变量以减号"-"打头。 可用这一选项处理以减号"-"打头的文件名, 例如: 
bzip2 -- -myfilename.
--repetitive-fast --repetitive-best
这些选项在 0.9.5 及其以上版本中是多余的。 在较早的版本中,这两个选项对排序算法 的行为提供了一些粗糙的控制,有些 
情况下很有用。 0.9.5 及其以上版本采用了改进的算法而与这些选项无关
# bzip2 -z abc.sh           #压缩
# bzip2 -kv abc.sh          #压缩原文保留
# bzip2 -9 -c abc.sh >abc.bz2       #压缩原文保留
# bzip2 -tv test.bz2     # 模拟解压
# bzip2 -k test          # 生成新文件,原文件也保留
# bzip2 -dc test.bz2     # 解压到标准输出
打包压缩--xz
xz 高压缩率, 解压速度快 但是压缩时间较长,CPU开销相对较大
用法:
压缩
xz 需要压缩的文件
解压缩
xz -d 需要解压的文件
unxz 需要解压的文件