一、简述
压缩是一种通过特定的算法来减少计算机文件大小的机制,因减少文件的大小,使文件能通过网络实现更快传输,此外还减少了文件的磁盘占用空间。反向就是解压缩
二,工具
1,compress / umcompress
后缀名 .Z,很老的压缩工具,已经过时了。
2,gip , bzip2, xz
(1) gzip / gunzip :压缩 / 解压缩 都会删除原文件
语法:gzip [选项] 压缩(解压缩)文件名
后缀名:.gz
# 常用选项: # -# : 压缩比,默认为6,范围1到9 # -d : 解压缩(gunzip) # -c : 将压缩后的结输出至标准输出
zcat somefile.gz : 不解压查看gzip压缩后文件的内容
例如:
# 压缩指定目标路径存放 [[email protected] tmp]# gzip -c /etc/passwd > /tmp/passwd.gz [[email protected] tmp]# ls -hl total 24K -rw-r--r--. 1 root root 672 Apr 20 11:05 passwd.gz -rwxr-xr-x. 1 root root 20K Apr 20 10:47 rc.sysinit # 解压缩 [[email protected] tmp]# gzip -d /tmp/passwd.gz [[email protected] tmp]# ls -hl total 24K -rw-r--r--. 1 root root 1.6K Apr 20 11:05 passwd -rwxr-xr-x. 1 root root 20K Apr 20 10:47 rc.sysinit
(2) bzip2 / bunzip2 : 压缩 / 解压缩 都会删除原文件
语法:bzip2 [选项] 压缩(解压缩)文件名
后缀名:.bz2
# 常用选项: # -# : 压缩比,默认为6 范围为 1 - 9 # -d : 解压缩(bunzip2) # -c : 将压缩后的结输出至标准输出 # -k : 保留原文件
bzcat somefile.bz2 : 不解压查看bz2压缩后文件的内容
(3) xz / unxz 压缩 / 解压缩 都会删除原文件
语法:xz [选项] 压缩(解压缩)文件名
后缀名:.xz
# 常用选项: # -# : 压缩比,默认为6 范围为 1 - 9 # -d : 解压缩(unxz) # -c : 将压缩后的结输出至标准输出 # -k : 保留原文件
xzcat somefile.xz 不解压查看xz压缩后的文件的内容
gzip, bzip2,xz 都不支持对目录的压缩,并具压缩和解压都会删除原文件。
3,zip / unzip : 归档压缩
zip是压缩程序,unzip是解压程序
语法:zip ZIPFILE.zip src_file...
[[email protected] ~]# zip a.zip /etc/passwd # zip all.zip *.jpg # 这条命令是将所有.jpg的文件压缩成一个zip包 压缩一个目录
[[email protected]~]# zip -r grub.zip /boot/grub # 压缩一个目录 [[email protected]]# unzip grub.zip -d /opt/ # 解压
4,tar 归档并压缩
能实现将多个文件打包成单个文件,即为归档文件
语法: tar [options] -f TARFILE.tar SRC_FILE...
(1) 创建归档:
tar
-c : create, 创建
-v : 显示详细信息
-f : FILENAME.tar
# 把两个目录或目标+文件打包成一个软件包 [[email protected] Desktop]# tar -cvf ss.tar /boot/ /etc/passwd
(2) 展开归档:
tar
-x : extract , 提取
-v : 显示详细信息
-f : FILENAME.tar
[[email protected] Desktop]# tar -xvf ss.tar
(3) 查看归档:
tar
-t : 查看 tarfile 里面的文件
-f : FILENAME.tar
[[email protected] Desktop]# tar -tvf ss.tar #更为详细信息
(4) tar可直接通过选项调用压缩工具执行压缩或解压
-z : gzip
-j : bzip2
-J : xz
归档并压缩组方式:-zcf, -jcf, -Jcf
后缀名:.tar.[ gz|bz2|xz ]
解压缩:-zxf , -jxf , -Jxf 组合方式,也可以简写 tar xf TARFILE.tar[.gz|.bz2|.xz] 不管是用什么方式压缩的,都会以对应的工具来解压缩
如果是多选项连起来写,那f选项必须后面跟着是TARFILE.tar[.gz|.bz2|.xz]
- 可加可不加都行
-C /path/to/somedir 可以指定解压的目录
例如:
# 把/boot目录压缩至/tmp目录下 [[email protected] tmp]# pwd /tmp # gzip [[email protected] tmp]# tar zcf boot.tar.gz /boot/ [[email protected] tmp]# file boot.tar.gz boot.tar.gz: gzip compressed data, from Unix, last modified: Mon Apr 20 12:48:37 2015 # bzip2 [[email protected] tmp]# tar jcf boot.tar.bz2 /boot [[email protected] tmp]# file boot.tar.bz2 boot.tar.bz2: bzip2 compressed data, block size = 900k # xz [[email protected] tmp]# tar Jcf boot.tar.xz /boot [[email protected] tmp]# file boot.tar.xz boot.tar.xz: xz compressed data # 把/tmp/boot.tar.gz压缩文件解压至 /tmp/test/ 目录中 [[email protected] tmp]# tar xf /tmp/boot.tar.gz -C /tmp/test/ [[email protected] tmp]# ls /tmp/test/ boot
THE END .