原理有很多,也很有意思比如:
计算机系统中用字节进行计数,但其实最小的单位应该是位。当我们存储一个数字 1 时,我们会存储 为00000001; 也许数据为连续一百个 1 ,在压缩时,可能会被直接计为“100个1”
压缩命令为通过一些计算方法将原本的文件进行压缩,以减少文件所占用的磁盘容量,压缩前与压缩后的文件所占用的磁盘容量比值,称为 压缩比
注意:压缩过后源文件消失
先找到目录中最大的文件 zzy@zzy-Lenovo-Legion-Y7000:~/C/AC/AB$ ls -ldSr ./* -rw-r--r-- 1 zzy zzy 0 12月 23 2012 ./end -rw-r--r-- 1 zzy zzy 8 5月 12 19:00 ./a.txt -rw-r--r-- 1 zzy zzy 26 5月 6 17:15 ./Linux.txt -rw-r--r-- 1 zzy zzy 223 5月 6 20:09 ./lianxi.c -rw-r--r-- 1 zzy zzy 266 5月 13 23:47 ./a.c -rw-r--r-- 1 zzy zzy 436 4月 1 21:32 ./calloc.c 之后压缩calloc.c文件: zzy@zzy-Lenovo-Legion-Y7000:~/C/AC/AB$ gzip -v calloc.c calloc.c: 52.1% -- replaced with calloc.c.gz 这里的 -v 可以显示出压缩比等信息压缩参数 -c:输入到屏幕 -9:指的是压缩等级(一般6就够了) 通过 > 将本该打印在屏幕上的东西输入到文件中
gzip -c calloc.c > calloc.c.gz由于我们压缩的是个文本文件我们可以试着读出压缩文件:
`zzy@zzy-Lenovo-Legion-Y7000:~/C/AC/AB$ zcat calloc.c.gz #include<stdio.h> #include<stdlib.h> #define LEN sizeof(char[26]) 、、、、、、(后面省略)接下来我们解压a.c:
gzip -d calloc.c.gz2.bzip2 与gzip用法类似,但是bzip2的压缩效率更高 -k:不会删除源文件
3.xz 压缩效率更高
将多个文件或目录打包成一个大文件的命令功能
常用参数: -z 通过 zip 进行解压的文件名最好用 *.tar.gz -j 用 bzip2 同上 *tai.bz2 -J 用 xz 同上 *.tar.xz -c 建立打包文件 -t 查看打包文件的文件名 -x 解压, 配合 -C(大写)可将其解压到特定目录 -v 解压或者要过程中把正在处理的文件名显示出来 -f 后面立刻接要被处理的文件名(建议单独写一个选项,避免忘记)
-p 保留原文件的属性(备份文件常用)
最简单的几个常用打包压缩命令:压缩: tar -jcv -f name.tar.bz2 要被压缩的文件或目录名称 查询: tar -jtv - f name.tar.bz2 解压: tar -jxv -f name.tar.bz2 -C 欲解压的目录
另外:建议将 【-f name】紧密连接在一起
我们可以只打包,不压缩:tar -cv -f filr.tar
如此,在很多书中该文件便称为 tarfile
如果有压缩支持的话,称为 tarball
此外,想要备份到磁带上(企业常用),可用指令:
tar -cv -f /dev/st0 /home
1.xfsdump 命令可备份文件系统或单一目录; 2.xfsdump 的备份若针对文件系统时,可进行 0-9 的 level 差异备份,其中 leve 0 为完整备份; 3.xfsrestore 命令可以还原被 xfsdump 创建的备份文件 4.要建立光盘刻录数据时,可通过 mkisos 命令来创建 5.可通过 wodim 来写入 CD 或 DVD 刻录机 6.dd 可备份完整的硬盘或硬盘分区,因为 dd 可读取磁盘的扇区表面数据 7.cpio 为相当优秀的备份命令,不过必须要搭配类似 find 命令来读入欲备份的数据,方可进行备份操作。