linux系统常见的压缩命令:compress、gzip、zcat、bzip2、xz、zip
打包命令:tar、cpio
compress
语法:compress [-dfvcVr] [-b maxbits] [file …]
(执行后命令后会替代目标文件)
后缀名:.Z
命令参数:
-c :将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
-f : 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件, 而其他同inode的文件硬链接数减1.
-v : 显示详细过程。
解压缩: a) -d
b) uncompress filname
c) zcat X.Z > X(权限更改并且保留原文件)
gzip
语法:gzip [OPTION]… FILE …
后缀名:.z
命令参数:
-d :解压缩 ,相当于gunzip
-c :将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
-f: 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v: 显示详细过程。
-# : 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 –fast
-2,3,4,5,6(default),7,8
-9 等于 –best
zcat
功能:不显示解压缩的前提下查看文本文件内容
语法:zcat (参数) (文件即显示其中文件内容的压缩包)
zcat X.gz > X
示例:gzip -c messages >messages.gz
gzip -c -d messages.gz > messages
zcat messages.gz > messages
bzip2
语法:bzip2 参数 filename
后缀名:.bz2
命令参数:
-k :保留原文件
-c :将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
-f :默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v :显示详细过程。
-# :数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 –fast
-2,3,4,5,6,7,8
-9 等于 –best (default)
解压缩: -d
bzcat X.bz2 > X
xz
语法:xz 参数 filename
后缀名:.xz
命令参数:
-k :保留原文件
-f: 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v: 显示详细过程。
-# : 数字越大,压缩比越高,速度越慢,文件越小。
-0 等于 –fast
-1 -2,3,4,5,6(default),7,8
-9 等于 –best
解压缩:-d
xzcat 不显式解压缩的前提下查看文本文件内容( # xzcat service.xz | less因为压缩文件的内容可能很多,所以可以通过管道送给less进行查看)
zip
功能:打包压缩
后缀名:.zip
eg.zip –r /testdir/sysconfig /etc/sysconfig/
解包解压缩:
unzip filename
|zip 将生成的文件名
–可以将管道前的输出结果转为文件并压缩。通过此方式压缩的文件只能使用“unzip -p 压缩包 > 新文件 ”来解压缩
unzip -p 预览解压缩后的内容到屏幕,可以配置重定向将结果保存到指定文件,权限会发生变化。
示例:
unzip sysconfig.zip
cat /var/log/messages | zip messages –
unzip -p message > message
tar
功能:用来压缩和解压文件。tar本身不具有压缩功能,是调用压缩功能实现的
语法:tar[必要参数][选择参数][文件]
命令参数:
-cf 创建包名字 原文件(可以指定多个)
-tf 包名字 显示包中的文件名
-tvf 详细显示包中的文件名
-rf 包名字 新文件名(可以指定多个)
–delete -f 包名字 被删除的文件名(可以指定多个)
-xf 包名字 解出所有的文件到当前目录
-xf 包名字 文件名 解所指定的文件到当前目录
-C 解包到指定目录
-v 显示过程
-Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩
-jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩
-zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩
-T 指定个列表,包含需要被打包的文件,以换行符为间隔
-X 指定个排除列表,以换行符为间隔
将tar包分隔为多个文件
split –b Size –d tar-file-name prefix-name
cat 被分隔出的多个文件名 > 单个文件名
split -b 1M –d mybackup.tgz mybackup-parts
split -b 1M mybackup.tgz mybackup-parts
合并: cat mybackup-parts* > mybackup.tar.gz
示例:
一、将文件打包成tar包
二、查看tar包内文件
三、将tar包解压缩
cpio
功能: cpio命令是通过重定向的方式将文件进行打包备份,还原恢复 的工具, 它可以解压以“.cpio”或者“.tar”结尾的文件。
命令参数:
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio还原时,自动的建立目录
-c 一种较新的存储方式
语法:v cpio [选项] > 文件名或者设备名 v
cpio [选项] < 文件名或者设备名
ls * |cpio -o > 文件名.cpio 打包。
cpio -id < 文件名.cpio 解开被cpio打包的文件
gzip 文件名.cpio 生成文件名为文件名.cpio.gz
-tv < 文件名.cpio 预览cpio打包的文件。
/boot/initramfs-xxxx.img :
Centos6: cpio.gz文件 zcat initramfs-xxxx.img |cpio -id
Centos7: cpio文件 cpio -id < initramfs-xxxx.img
示例:
将etc目录备份: find ./etc -print |cpio -ov >etc.cpio
内容预览: cpio –tv < etc.cpio
要解包文件 :cpio –idv < etc.cpio
原创文章,作者:Light Yagami,如若转载,请注明出处:http://www.178linux.com/84455