tar -cvf - /home | tar -xvf -
说明:把/home 拷贝到当前目录下,管道前半句把/home打包放到标准输出流中,后半句是把输入流-里的内容解包到当前目录。
tar是Linux常见的一种归档文件(原生不包括压缩功能)
gzip是gnu/Linux的一种压缩文件工具,算法是基于 DEFLATE,文件是gz,可以和tar组合。
zip是一种规范开放的压缩文件,算法不定,但主要是用 DEFLATE
rar的算法专有,但发行时附送解码器允许解码器再开发,编码器专有
7zip和zip差不多,算法不定,主要用bzip2和lzma,而且完全开源。
zip和7z更像是压缩容器,因为算法不是格式固定,允许支持其他压缩算法
大小与区别
tar是无压缩的,比压缩效率,gz的算法最原始,所以较低,其次zip,接着rar,7z两个主要算法基本上略优于rar,基本不相上下。
在Linux里面,tar一般和其他没有文件管理的压缩算法文件结合使用,用tar打包整个文件目录结构成一个文件,再用gz,bzip等压缩算法压缩成一次。也是Linux常见的压缩归档的处理方法。
zip相对比较老,格式规范可知,所以积累了各种加解压实现,有较好的兼容性,不过现有文件格式相对而言比较落后,还有会有文件名乱码问题(因为文件名是用非Unicode编码)
rar和7z就新些,所用算法压缩效率也好很多,兼容性不及zip,不过rar的编码器有专利,但可以不制作编码器的情况使用或者再开发发行版的解码器(所以其他压缩管理工具可以调用rar的解码器来解压rar,但不能加压,百度云的在线解压rar可能是使用或者再开发过unrar文件),7z的文件和管理程序都是开源的,文件格式也比较好(支持Unicode文件名),两个主要压缩算法的性能都很好,只是差何时能普及而取代zip而已。
压缩率bzip2 > gzip > zip
zip的通用性较好,而现在windows下软件winrar,7zip等对tar.gz的支持也非常好。推荐用tar.gz,bzip2要耗费更多的cpu
gzip可以极大的加速网站.有时压缩比率高达80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate
在网络传输、设备之间转存、复制大文件等时,由于网络不稳定等因素可能造成数据不一致,这就需要校验文件的完整性。
md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。md5校验,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校验算法还有SHA*系列的。
-b 以二进制模式读入文件内容
-t 以文本模式读入文件内容
-c 根据已生成的md5值,对现存文件进行校验
--status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断。
对同内容不同名的文件进行md5,md5值一样,
-b、-t虽然是不同的读入模式,但是在进行求md5的时候,是一样的,因为是逐位校验的。
md5sum值逐位校验,所以文件越大,校验时间越长。 ————————————————
【tar option】tar --help
-c, --create create a new archive建立压缩档案
-x, --extract, --get extract files from an archive解压
-t, --list list the contents of an archive查看内容
-r, --append append files to the end of an archive向压缩归档文件末尾追加文件
-u, --update only append files newer than copy in archive更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
--exclude=PATTERN exclude files, given as a PATTERN
tar -czvf proftpd.tar.gz /home/proftpd --exclude *.log
#压缩/home/proftpd目录下文件(除去.log文件)到proftpd.tar.gz
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压