Linux常见的压缩命令
gzip
gzip是为了替换compress并提供更换的压缩比而成立的,gzip可以解开compress、zip与gzip压缩的文件,压缩后文件后缀为*.gz
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d:解压缩的参数
-v:可以在压缩后显示出原文件与压缩文件的压缩比等信息
不能保留原始文件,可以使用-c来完成这个功能,gzip -c file >file.gz
这是将文件压缩输出到屏幕上,再将输出屏幕上的数据使用数据重定向来保存到file.gz上。
zcat/zmore/zless
可以使用这些命令来查看被gzip压缩的纯文本文件
bzip2
bzip2则是为了替换gzip2并提供更好的压缩比而来的,但是bzip2对于大容量的文件来说,压缩时间相应的比gzip的压缩时间更长。
比gizp多一个参数-k:可保留原始文件而不删除原始文件。
bzcat/bzmore/bzgrep
与gzip对应
xz
自由软件开发者推出的,压缩比更高的软件,xz
-t:测试压缩文件的完整性,看有没有错误
-l:列出压缩文件的相关信息;
xzcat/xzless/xzmore
打包命令 tar
最简单的tar使用记忆
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
详解
tar [-z|-j|-J] [cv] [-f 待建立的压缩文件] filename... <==打包与压缩
tar [-z|-j|-J] [tv] [-f 既有的 tar 文件] <==查看文件名
tar [-z|-j|-J] [xv] [-f 既有的 tar 文件] [-C 目录] <==解压缩
首先是功能的区别
-c:打包文件。搭配-v来查看过程中被打包的文件
-t:查看打包文件中有哪些文件
-x:解包或者解压缩,可以搭配-C在特定目录解压
注:c、t、x不能在同一个命令中同时出现
接着是压缩方式的区别
-z:使用gzip,此时的文件名最好为*.tar.gz 或者简写为*.tgz
-j:使用bzip2,此时的文件名最好为*.tar.bz2
-J:使用xz,此时的文件名最好为*.tar.xz
注:i)同样,z、j、J也不能同时出现在一个命令中;
ii)-f 后面要立刻接要被处理的文件名,为了减少错误最好-f单独写出来,被打包或压缩的文件不用放在-f后面。
-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f后面立刻要接被处理的文件名
-C 目录:这个选项用在解压缩,解压在特定目录
解压在/tmp中:tar -jxv -f /root/etc.tar.bz2 -C /tmp
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P:保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩过程中,不将FILE打包。
如:tar -jcv -f /root/system.tar.bz2 --exclude==/root/etc*
还可以解开单一文件:tar -jxv -f 打包文件.tar.bz2 待解开文件名
tarfile、tarball
对于tar -cv -f file.tar 只进行了打包,没有压缩的称为tarfile
对于tar -jcv -f file.tar.bz2 file 即打包又压缩的称为tarball
其他压缩与备份工具
dd
几乎是直接读取扇区,有啥记录啥,可以记录文件或设备
dd if="input file" of="output file" bs="block_size" count="number"
if:就是输入文件或设备
of:就是输出文件或设备
bs:设置的一个block的大小,默认为512Bytes(一个扇区的大小)
count:多少个bs的意思
cpio
可以备份任何文件,但是需要配合其他程序,因为它不会主动地去找文件。一般配合find等
参考鸟哥的私房菜第四版