文件为什么要压缩和解压?
简单的说,你可以将它想成,其实文件里面有相当多的“空间”存在,并不是完全填满的,
而“压缩”的技术就是将这些“空间”填满,以让整个文件占用的容量下降! 不过,这些“压缩过
的文件”并无法直接被我们的操作系统所使用的,因此, 若要使用这些被压缩过的文件数据,
则必须将它“还原”回来未压缩前的模样, 那就是所谓的“解压缩”啰!而至于压缩后与压缩的文
件所占用的磁盘空间大小, 就可以被称为是“压缩比”啰!压缩比越好要花费的运算时间越多。
这个“压缩”与“解压缩”的动作有什么好处呢?最大的好处就是压缩过的文件大小变小了, 所以
你的硬盘容量无形之中就可以容纳更多的数据。此外,在一些网络数据的传输中,也会由于
数据量的降低, 好让网络带宽可以用来作更多的工作!而不是老是卡在一些大型的文件传输
上面呢!目前很多的 WWW 网站也是利用文件压缩的技术来进行数据的传送,好让网站带宽
的可利用率上升喔!
常见压缩文件扩展名:
*.tar ,tar 程序打包的数据,并没有压缩过。
*.tar.gz ,tar 程序打包的文件,其中并且经过 gzip 的压缩。
*.tar.bz2 ,tar 程序打包的文件,其中并且经过 bzip2 的压缩。
*.tar.xz ,tar 程序打包的文件,其中并且经过 xz 的压缩。
*.zip ,zip 程序压缩的文件。
*.gz ,gzip 程序压缩的文件。
*.bz2 ,bzip2 程序压缩的文件。
*.xz ,xz 程序压缩的文件。
*.Z ,compress 程序压缩的文件。
Linux上常见的压缩指令就是 gzip, bzip2 以及最新的 xz ,至于 compress 已经退流行了。为
了支持 windows 常见的 zip,其实 Linux 也早就有 zip 指令了! gzip 是由 GNU 计划所开发出
来的压缩指令,该指令已经取代了 compress 。 后来 GNU 又开发出 bzip2 及 xz 这几个压缩
比更好的压缩指令!不过,这些指令通常仅能针对一个文件来压缩与解压缩,如此一来, 每
次压缩与解压缩都要一大堆文件,岂不烦人?此时,那个所谓的“打包软件, tar”就显的很重要
啦!
这个 tar 可以将很多文件“打包”成为一个文件!甚至是目录也可以这么玩。不过,单纯的 tar
功能仅是“打包”而已,亦即是将很多文件集结成为一个文件, 事实上,他并没有提供压缩的
功能,后来,GNU 计划中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方
便并且更强大的压缩与打包功能!以上内容摘自:鸟哥Linux私房菜。
tar命令
功能说明:备份文件。
简化语法:tar[必要参数][选择参数] <命名新的压缩文件> [被压缩原文件]
***** 打包的新名称前边的参数必须是 -f。
补充说明: tar并不是一个压缩软件,本身不具有压缩功能。它是调用压缩功能将文件或者文件夹打包成一个文件,便于文件备份及归档。
常用参数:(非全部)
-c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)。
-t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了。
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开,
特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz
特别留意, -z, -j, -J 不可以同时出现在一串命令行中。
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来。
-f filename:使用档案文件或设备,-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项!(比较不
会忘记)。
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-O :把从备份文件里还原的文件输出到标准输出设备。
-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件,备份数据中不含有根目录。
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录。
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
tar独立参数:
-c: 建立新的备份文件(压缩)。
-x:从备份文件中还原文件(解压)。
-t:查看内容(看一个压缩包有哪些文件)。
-r:新增文件到已存在的备份文件的结尾部分(向压缩归档文件末尾追加文件)。
-u:更新原压缩包中的文件
上边这几个参数是独立的,使用的时候只能选择其中一个,可以和其他参数连用。
例1:将 file1.txt 文件备份成有gzip属性的文件 (gzip属性需要用到 -z 参数)。
1、注意:打包压缩的新文件名称(file1.tar.gz)必须在被打包压缩文件名称(file1.txt)前边。
2、tar前边多了 time 会显示程序运行的时间,看 real 就好了!花去了0.008s。
3、将 -f 与其他选项独立出来,为了避免出问题;也可以写成 -czvf ,但是 f 必须放在最后。
-- 如果 f 没有放到最后,会出现类似下图情况,将生成一个 名为 v(最后一个字符命名) 的文件。
例2:将文件file1.tar.gz 解压到文件夹 mulu 下:
解压需要用到参数 -x, 如果要将文件解压到指定的目录下,可以使用参数 -C /目录 ;
还有另一种方法,可以直接cd /目录,进到要将文件解压到的目录里,然后执行解压指令。
zip命令
例如:zip -r folder.zip mysql 该句命令的含义是:将folder文件夹压缩成folder.zip
zip -r abcdef.zip abc def.txt 这句命令的意思是将文件夹abc和文件def.txt压缩成一个压缩包abcdef.zip
unzip命令
与zip命令相反,这是解压命令。 如:unzip folder.zip 在当前目录下直接解压folder.zip。
未完,待续......