#头条创作挑战赛#
1 压缩和解压缩
主要针对单个文件压缩,而非目录

1.1compress 和 uncompress
此工具来自于ncompress包,此工具目前已经很少使用
对应的文件是 .Z 后缀
格式:
compress Options [file ...]
uncompress file.Z #解压缩
选项:
-d 解压缩,相当于uncompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情
zcat file.Z 不显式解压缩的前提下查看文本文件内容
案例:
zcat file.Z >file
1.2 gzip和gunzip
来自于 gzip 包
对应的文件是 .gz 后缀
格式:
gzip [OPTION]... FILE ...
选项:
-k keep, 保留原文件
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大
案例:
#解压缩
gunzip file.gz
#不显式解压缩的前提下查看文本文件内容
zcat file.gz
[root@nginx ~]#gzip -c messages >messages.gz
[root@nginx ~]#gzip -c -d messages.gz > messages
[root@nginx ~]#zcat messages.gz > messages
[root@nginx ~]#cat messages | gzip > m.gz
1.3 bzip2和bunzip2
来自于 bzip2 包
对应的文件是 .bz2 后缀
格式:
bzip2 [OPTION]... FILE ...
选项:
-k keep, 保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 1-9,压缩比,默认为9
案例:
[root@nginx ~]#bunzip2 file.bz2 解压缩
[root@nginx ~]#bzcat file.bz2 不显式解压缩的前提下查看文本文件内容
1.4 xz 和 unxz
来自于 xz 包
对应的文件是 .bz2 后缀
格式:
xz [OPTION]... FILE ...
选项:
-k keep, 保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 压缩比,取值1-9,默认为6
案例:
[root@nginx ~]#unxz file.xz #解压缩
[root@nginx ~]#xzcat file.xz #不显式解压缩的前提下查看文本文件内容
1.5 zip 和 unzip

zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,如:所有者和组信息,一般建议使用 tar 代替
分别来自于 zip 和 unzip 包
对应的文件是 .zip 后缀
案例: zip帮助
[root@nginx ~]#zip
[root@nginx ~]#zip -h2
案例:
#打包并压缩
zip -r /backup/sysconfig.zip /etc/sysconfig/
#不包括目录本身,只打包目录内的文件和子目录
cd /etc/sysconfig; zip -r /root/sysconfig.zip *
#默认解压缩至当前目录
unzip /backup/sysconfig.zip
#解压缩至指定目录,如果指定目录不存在,会在其父目录(必须事先存在)下自动生成
unzip /backup/sysconfig.zip -d /tmp/config
cat /var/log/messages | zip messages -
#-p 表示管道
unzip -p message.zip > message
案例: 交互式加密和解密:
zip -e archive.zip file.txt
- 对file.txt文件进行交互式加密,并将加密后的文件保存为archive.zip。
unzip archive.zip
- 解压缩archive.zip文件时,会提示输入密码进行解密。
案例: 非交互式加密和解密:
zip -P 123 archive.zip file.tx
- 对file.txt文件进行非交互式加密,并将加密后的文件保存为archive.zip,密码为123。
unzip -P 123 archive.zip
- 解压缩archive.zip文件时,使用密码123进行解密。
2 打包和解包
2.1 tar
tar 即 Tape ARchive 磁带归档,可以对目录和多个文件打包一个文件,并且可以压缩,保留文件属性不丢失,常用于备份功能,推荐使用对应的文件是 .tar后缀

格式:
tar [选项...] [FILE]...
选项:
-c 创建归档
-r 将文件追加到归档的结尾 , 只适用于打包
-t 列出归档内容
-x 解包
-f 接归档文件名
-a 自动根据指定的文件名后缀进行压缩
-j 通过 bzip2 过滤归档
-z 通过 gzip 过滤归档
-C 解包至哪个目录
-v 详细地列出处理的文件
注意:打包命名一般为*.tar gzip格式的压缩包命名一般为*.tar.gzbzip2格式的压缩包命名一般为*.tar.bz2
用法:
用法:
打包: tar cf 打包后的文件名 要打包的文件...
压缩: tar czf 压缩后的文件名 要压缩的文件... //gzip格式的压缩
解包: tar xf tar包名 [-C 需要解包到的目录]
查询: tar tf 包名
案例:
[root@nginx ~]# tar cf /tmp/test.tar /test/ //打包
[root@nginx ~]# tar tf /tmp/test.tar //查询/tmp/test.tar中有哪些文件
[root@nginx ~]# tar czf /tmp/test.tar.gz /test/ //压缩成gzip格式
[root@nginx ~]# tar caf test.tar.gz a.txt b.txt //自动根据文件名进行压缩
[root@nginx ~]# tar xf /unpack/test.tar.gz -C /tmp/ //解压到/tmp目录
