压缩和解压缩工具
概论
在使用操作系统时,我们常会遇到大文件,会使我们很头疼.在面对时间和空间上的选择,只能选择空间,这就要用到压缩工具和归档工具,下面为大家一一介绍.
压缩文件只压缩文本格式的文件,通常不压缩已经是压缩的文件.
压缩文件就会涉及到压缩比:
原理:通过了解文本文件的数据形式,运用压缩算法,
目的:时间换空间
工具:
压缩:
compress/uncompress 结尾:.z
gzip/gunzip 结尾: .gz
bzip2/bunzip2 结尾: .bz2
xz/unxz 结尾: .xz
归档:
zip/unzip
tar,cplo
压缩工具详解
1.gzip/gunzip工具/zcat
特点:压缩后,删除原文件
格式:
gzip [ -acdfhlLnNrtvV19 ] [-S 后缀] [ 文件名 … ]
gunzip [ -acfhlLnNrtvV ] [-S 后缀] [ 文件名 … ]
zcat [ -fhLV ] [ 文件名 … ] 查看gzip文件
选项:
-d:–decompress 解压缩,相当于gunzip
-#:指定压缩比,默认是6 数字越大,压缩比越大,建议不修改默认值,除非有特定需求
-c:将压缩结果输出至标准输出,原文件保留;
使用格式:gzip -c FILE > /PATH/TO/SOMEFILE.gz
[root@wen-7 ~]# gzip vimrc [root@wen-7 ~]# ll 总用量 27064 -rw-r--r-- 1 root root 230 8月 17 09:18 vimrc.gz [root@wen-7 ~]# gzip -d vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# gzip -7 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 230 8月 17 09:18 vimrc.gz [root@wen-7 ~]# gzip -c vimrc > /tmp/vim.gz [root@wen-7 ~]# ll /tmp -rw-r--r-- 1 root root 230 8月 18 09:07 vim.gz
2.bzip2/bunzip2/bcat
bzip2, bunzip2 – 一种块排序文件压缩软件,v0.9.5
bzcat – 将文件解压缩至标准输出
bzip2recover – 恢复损坏的 bzip2 文件
格式:
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames … ]
bunzip2 [ -fkvsVL ] [ filenames … ]
bzcat [ -s ] [ filenames … ]
bzip2recover filename
选项:
-d:解压缩
-#:指定压缩比,默认是6 数字越大,压缩比越大,建议不修改默认值,除非有特定需求
-k –keep:保留原文件
[root@wen-7 ~]# bzip2 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 [root@wen-7 ~]# bzip2 -d vimrc.bz2 [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# bzip2 -7 vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 [root@wen-7 ~]# bzip2 -d vimrc.bz2 [root@wen-7 ~]# bzip2 -7 -k vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2
3.xz/unxz/xzcat ( 压缩效果最好的压缩工具 )
unxz is equivalent to xz –decompress.
xzcat is equivalent to xz –decompress –stdout.
lzma is equivalent to xz –format=lzma.
unlzma is equivalent to xz –format=lzma –decompress.
lzcat is equivalent to xz –format=lzma –decompress –stdout.
格式:
xz [option]… [file]…
选项:
-d:解压缩
-#:指定压缩比,默认是6 数字越大,压缩比越大,建议不修改默认值,除非有特定需求
-k –keep:保留原文件
[root@wen-7 ~]# xz vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 268 8月 17 09:18 vimrc.xz [root@wen-7 ~]# xz -d vimrc.xz [root@wen-7 ~]# xz -7 vimrc [root@wen-7 ~]# xz -d vimrc.xz [root@wen-7 ~]# xz -7 -k vimrc [root@wen-7 ~]# ll -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 255 8月 17 09:18 vimrc.bz2 -rw-r--r-- 1 root root 268 8月 17 09:18 vimrc.xz
4.zip:最通用的压缩工具
特点:压缩比有限,zip既能归档,又能压缩
zip/unzip
后缀名: .zip
格式:
zip filename.zip file..
[root@wen-7 ~]# zip vim.zip vimrc adding: vimrc (deflated 53%) [root@wen-7 ~]# ll -rw-r--r-- 1 root root 366 8月 18 09:17 vim.zip
归档工具详解
刚才介绍的是压缩文具,但压缩工具只能压缩文件,不支持压缩目录.linux而言,要想对目录进行压缩,不对目录里的文件单独压缩,要先对目录进行归档操作,下面为大家介绍归档工具:
归档工具主要有两个: tar cplo
1.tar – tar 档案文件管理程序的 GNU 版本。
格式:
tar [option] …FIle..
选项:
-v: 显示详细信息,可于任何选项一起使用
-c: 创建归档
配合 -f /PATH/TO/SOMEFILE.tar file…
[root@wen-7 ~]# tar -cvf /tmp/vim.tar vimrc -rw-r--r-- 1 root root 10240 8月 18 09:28 vim.tar-x:展开归档
配合 -f /PATH/TO/SOMEFILE.tar
默认展开到当期路径下,使用 -C /PATH/TO/SOMEDIR 到指定路径下
[root@wen-7 ~]# tar xvf /tmp/vim.tar -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc [root@wen-7 ~]# tar xvfC /tmp/vim.tar /mnt vimrc [root@wen-7 ~]# ll /mnt 总用量 4 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc
-t:查看归档文件的文件列表
配合-f /PATH/TO/SOMEFILE.tar
[root@wen-7 ~]# tar -tvf /tmp/vim.tar -rw-r--r-- root/root 434 2016-08-17 09:18 vimrc
扩展:
文件或目录tar归档后,还可以执行压缩功能,配合压缩工具,就能实现多个文件或目录
归档并压缩 :
-z : gzip2
-zcf /PATH/TO/SOMEFILE.tar.gz file…. 创建归档并压缩
-zxf /PATH/TO/SOMEFILE.tar.g 解压缩并展开归档
[root@wen-7 tmp]# tar -zcvf /tmp/vim.tar.gz /tmp/vim.tar -rw-r--r-- 1 root root 360 8月 18 09:47 vim.tar.gz [root@wen-7 tmp]# tar -zxvf /tmp/vim.tar.gz [root@wen-7 tmp]# ll 总用量 8 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 312 8月 18 09:52 vim.tar.gz
-J: bzip2
-jcf 归档并压缩
-jxf 解压缩并展开归档
[root@wen-7 ~]# tar Jcf /tmp/vim.tar.bzip2 vimrc [root@wen-7 ~]# ll /tmp 总用量 12 drwx------ 2 pcp pcp 39 8月 18 09:55 pcp.7z8yRiYHw -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz [root@wen-7 ~]# tar Jxf /tmp/vim.tar.bzip2 [root@wen-7 ~]# ll /tmp 总用量 12 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz-j: xz
-jcf 归档并压缩
-jxf 解压缩并展开归档
[root@wen-7 ~]# tar jcf /tmp/vim.tar.xz vimrc [root@wen-7 ~]# ll /tmp 总用量 16 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc -rw-r--r-- 1 root root 360 8月 18 09:55 vim.tar.bzip2 -rw-r--r-- 1 root root 360 8月 18 09:54 vim.tar.gz -rw-r--r-- 1 root root 333 8月 18 09:57 vim.tar.xz [root@wen-7 ~]# tar jxf /tmp/vim.tar.xz vimrc [root@wen-7 ~]# ll /tmp 总用量 16 -rw-r--r-- 1 root root 434 8月 17 09:18 vimrc
实战: 下载redls-3.0.2.tar.gz https://www.redis.iso
1.展开至tmp目录,重新创建压缩为xz格式
[root@wen-7 ~]# tar xvzf redls-3.0.2.tar.gz [root@wen-7 ~]# tar -jcf redls-3.0.2.tar.xz sh/ -rw-r--r-- 1 root root 4739 8月 14 11:05 sdfaf.tar.gz -rw-r--r-- 1 root root 4407 8月 14 11:14 sdfaf.tar.xz
2.cpio 复制从或到文件 (打包归档)
cpio,命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以".cpio"或者".tar"结尾的文件
格式:
coip [选项] > 文件名或设备名
coip [选项] < 文件名或设备名
选项:
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统-
t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio还原时,自动的建立目录
-c 一种较新的存储方式
实战演练:
1. 将/etc/备份
[root@wen-7 ~]# find /etc -print| cpio -ov > etc.cpio /etc/smartmontools/smartd_warning.sh 54092 块 [root@wen-7 ~]# ll 总用量 27064 -rw-r--r-- 1 root root 27695104 8月 17 22:56 etc.cpio
2. 内容预览
-rwxr-xr-x 1root root 5767 Jun 10 2014 /etc/smartmontools/smartd_warning.sh 54092 块 [root@wen-7 ~]# cpio -tv < etc.cpio
3. 要解包文件
cpio: 未创建 /etc/smartmontools/smartd_warning.sh:已有更新或同样新的版本存在 /etc/smartmontools/smartd_warning.sh 54092 块 [root@wen-7 ~]# cpio -iv <etc.cpio /etc/smartmontools/smartd_warning.sh 54092 块 [root@wen-7 ~]# cpio -idv <etc.cpio
原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/37120