Linux系统档案与文件系统的压缩与打包
以下文章基于centos6.5
文章引自:http://www.jb51.net/LINUXjishu/105916.html
一、Linux下常见的压缩指令
在linux的环境中,压缩文件的扩展名大部分是:[*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2],为什么会有这样的扩展名呢?不是说Linux下的扩展名没有用么?
这是因为Linux支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件了。所以,当你下载到某个压缩文件时,自然就需要知道该档案是由哪种压缩指令压缩出来的,好用来对照着压缩啊!也就是说,虽然Linux档案的属性基本上是与文件名没有绝对关系的,但是为了帮助记忆,所以适当的扩展名还是有必要的。下面我们就列出几个常见的压缩文件档案扩展名吧。
*.Z compress程序压缩的档案;
*.gz gzip程序压缩的档案;
*.bz2 bzip2程序压缩的档案;
*.tar tar程序打包的数据,但是没有被压缩过;
*.tar.gz tar程序打包的数据,并且经过gzip压缩过;
*.tar.bz2 tar程序打包的数据,并且经过bzip2压缩过;
Linxu上常见的的压缩的指令是gzip和bzip2,compress已经退出流行了。
这个 tar 可以将徆多档案『打包』成为一个档案!甚至是目录也可以这么玩。不过,单纯的tar 功能仅是『打包』而已,亦即是将很多档案集结成为一个档案, 事实上,他并没有提供压缩的功能,后来,GNU 计划中,将整个 tar与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能! 底下我们就来谈一谈这些在 Linux 底下基本的压缩指令吧!
1.comprss
已经退出流行了。
2.gzip与zcat
gzip 可以说是应用度最广的压缩指令了!目前 gzip 可以解开 compress, zip与gzip 等软件所压缩的档案。 至于 gzip所建立的压缩文件为 *.gz 的档案名喔!让我们来看看这个指令的用法吧:
与 compress 类似的,当你使用 gzip 进行压缩时,在预设的状态下原本的档案会被压缩成为 .gz 的档名, 源文件就不再存在了。您也可以发现,由于 gzip 的压缩比要比 compress 好的多,所以当然建议使用 gzip 啦! 此外,使用 gzip 压缩的档案在 Windows 系统中,竟然可以被 WinRAR 这个软件解压缩呢!很好用吧!至于其他的用法如下:
其他范例:
1.Linux压缩保留源文件的方法:
gzip –c filename > filename.gz
2.Linux解压缩保留源文件的方法:
gzip –c filename.gz > filename
其实 gzip 的压缩已经优化过了,所以虽然 gzip 提供 1~9 的压缩等级,不过使用默认的6 就非常好用了! 因此上述的范例四可以不要加入那个 -9 的选顷。范例四的重点在那个 -c 与 > 的使用啰!
cat 可以读取纯文本档,那个 zcat 则可以读取纯文本档被压缩后的压缩文件! 由于gzip 这个压缩指令主要想要用来取代 compress 的,所以不但 compress 的压缩文件案可以使用 gzip 来解开,同时 zcat 这个指令可以同时读取 compress与gzip 的压缩文件呦!
3.bzip2
4.zip和unzip
在终端中数据zip和unzip来检查当前linux中是否安装了zip和unzip程序,如下表明安装了zip和unzip:
如果没有安装,使用以下命令安装:
yum install zip;
yum install unzip;
解压缩文件范例:
1、把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip mydata.zip -d mydatabak
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip wwwroot.zip
5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
unzip abc\*.zip
6、查看把/home目录下面的wwwroot.zip里面的内容
unzip -v wwwroot.zip
7、验证/home目录下面的wwwroot.zip是否完整
unzip -t wwwroot.zip
8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
unzip -j wwwroot.zip
主要参数
-c:将解压缩的结果
-l:显示压缩文件内所包含的文件
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t:检查压缩文件是否正确
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
-v:执行是时显示详细的信息
-z:仅显示压缩文件的备注文字
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-C:压缩文件中的文件名称区分大小写
-j:不处理压缩文件中原有的目录路径
-L:将压缩文件中的全部文件名改为小写
-M:将输出结果送到more程序处理
-n:解压缩时不要覆盖原有的文件
-o:不必先询问用户,unzip执行后覆盖原有文件
-P:使用zip的密码选项
-q:执行时不显示任何信息
-s:将文件名中的空白字符转换为底线字符
-V:保留VMS的文件版本信息
-X:解压缩时同时回存文件原来的UID/GID
5.tar
Not more, but better!