<i id='f5ezl'></i>

      <code id='f5ezl'><strong id='f5ezl'></strong></code>
      <ins id='f5ezl'></ins><dl id='f5ezl'></dl>
        <acronym id='f5ezl'><em id='f5ezl'></em><td id='f5ezl'><div id='f5ezl'></div></td></acronym><address id='f5ezl'><big id='f5ezl'><big id='f5ezl'></big><legend id='f5ezl'></legend></big></address>
        <fieldset id='f5ezl'></fieldset>

          <i id='f5ezl'><div id='f5ezl'><ins id='f5ezl'></ins></div></i>
        1. <tr id='f5ezl'><strong id='f5ezl'></strong><small id='f5ezl'></small><button id='f5ezl'></button><li id='f5ezl'><noscript id='f5ezl'><big id='f5ezl'></big><dt id='f5ezl'></dt></noscript></li></tr><ol id='f5ezl'><table id='f5ezl'><blockquote id='f5ezl'><tbody id='f5ezl'></tbody></blockquote></table></ol><u id='f5ezl'></u><kbd id='f5ezl'><kbd id='f5ezl'></kbd></kbd>
        2. <span id='f5ezl'></span>

          Linux中文件的压缩与解压缩命令操作示例集锦

          • 时间:
          • 浏览:11
          • 来源:124软件资讯网

              所谓压缩就是将原有的文件通过差别的编码手艺举行运算  ,以淘汰数据存储所需要的空间  ,使用前再使用解压还原源文件的内容即可 。

              和windows一样  ,在linux下也存在多种压缩与解压缩要领  。

              1、zip压缩与解压缩

              zip是最为普遍使用的压缩法式 ,经它压缩的文件会发生扩展名为zip的压缩文件 ,而且这种花样在多种系统上可以使用  ,像windows中的winzip

              下面看一下在linux中怎样建设zip文件  。

              我们在终端中输入zip会泛起这个下令的一些先容和参数的意义  。

              代码如下:

              xiaopeng@ubuntu:~/test$ zip

              Copyright (c) 1990-2006 Info-ZIP - Type 'zip "-L"' for software license.

              Zip 2.32 (June 19th 2006). Usage:

              zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

              The default action is to add or replace zipfile entries from list, which

              can include the special name - to compress standard input.

              If zipfile and list are omitted, zip compresses stdin to stdout.

              -f freshen: only changed files -u update: only changed or new files

              -d delete entries in zipfile -m move into zipfile (delete files)

              -r recurse into directories -j junk (don't record) directory names

              -0 store only -l convert LF to CR LF (-ll CR LF to LF)

              -1 compress faster -9 compress better

              -q quiet operation -v verbose operation/print version info

              -c add one-line comments -z add zipfile comment

              -@ read names from stdin -o make zipfile as old as latest entry

              -x exclude the following names -i include only the following names

              -F fix zipfile (-FF try harder) -D do not add directory entries

              -A adjust self-extracting exe -J junk zipfile prefix (unzipsfx)

              -T test zipfile integrity -X eXclude eXtra file attributes

              -y store symbolic links as the link instead of the referenced file

              -R PKZIP recursion (see manual)

              -e encrypt -n don't compress these suffixes

              下面我们就最简朴的实验一下  。我们就是把当前目录下文件名以test开头的所有文件压缩文一个文件  ,并可以检察一下压缩比  。(红色是我的注释)

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 24K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              代码如下:

              xiaopeng@ubuntu:~/test$ zip test.zip test*

              zip下令后面先跟压缩后的文件名  ,这里是test.zip,固然后缀名不是必须的  。然后跟要压缩的文件名  。这里用的test*指的是所有以test开头的文件  ,包罗test1 test2 test3 test4

              adding: test1 (deflated 30%) 这里显示的是压缩比

              adding: test2 (deflated 65%)

              adding: test3 (deflated 64%)

              adding: test4 (deflated 73%) 大要可以看出源文件越大  ,压缩比就越大

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 32K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              -rw-r--r-- 1 xiaopeng xiaopeng 5.0K 2009-06-25 14:17 test.zip

              xiaopeng@ubuntu:~/test$

              上面是压缩了相同类型的文件 ,实在也可以把差别类型的文件压缩到一起  。有时间为了节约硬盘空间  ,可以在建设压缩文件后  ,自动删除原始文件 ,此时只要带一个 -m 的参数就可以  。

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 24K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              xiaopeng@ubuntu:~/test$ zip -m test.zip test* 带参数-m

              updating: test1 (deflated 30%)

              updating: test2 (deflated 65%)

              updating: test3 (deflated 64%)

              updating: test4 (deflated 73%)

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 8.0K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 5.0K 2009-06-25 14:26 test.zip

              xiaopeng@ubuntu:~/test$

              可以看出 原始文件已经被删除 ,只有压缩文件留下了  。

              在压缩一些目录的时间  ,经出在目录中会有子目录  ,此时凭据子目录中的文件是否压缩分为两种情形 ,一种是压缩  ,一种是忽略自录中的内容 ,若是选择压缩子目录  ,则使用-r参数  ,若是不压缩 ,则使用-j 参数

              下面举例  ,一个是-r 一个是-j

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 28K

              代码如下:

              drwxr-xr-x 2 xiaopeng xiaopeng 4.0K 2009-06-25 14:31 pdf

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              xiaopeng@ubuntu:~/test$ zip -r test.zip * 压缩当前目录所有内容  ,r 参数说明pdf这个子目录中的内容也压缩

              adding: pdf/ (stored 0%)

              adding: pdf/case_Contact.pdf (deflated 10%)

              adding: pdf/case_KRUU.pdf (deflated 9%)

              adding: pdf/case_howard_county_library.pdf (deflated 24%)

              adding: test1 (deflated 30%)

              adding: test2 (deflated 65%)

              adding: test3 (deflated 64%)

              adding: test4 (deflated 73%)

              xiaopeng@ubuntu:~/test$

              下面的情形是子目录不压缩

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -l

              总用量 28

              代码如下:

              drwxr-xr-x 2 xiaopeng xiaopeng 4096 2009-06-25 14:31 pdf

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1233 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3412 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 10091 2009-06-25 14:14 test4

              xiaopeng@ubuntu:~/test$ zip -j test.zip *

              adding: test1 (deflated 30%)

              adding: test2 (deflated 65%)

              adding: test3 (deflated 64%)

              adding: test4 (deflated 73%)

              子目录pdf被忽略

              代码如下:

              xiaopeng@ubuntu:~/test$

              令外一个技巧: 某些文件由于编码的缘故原由  ,已经大幅的淘汰了文件的巨细  ,如GIF,JPG 等花样  ,在用zip压缩险些没什么作用而铺张了时间  ,此时可一用-n参数直接生存这些文件而不压缩  。例如:

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 68K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 18K 2009-06-04 21:18 duality.jpg

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 14:13 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              -rw-r--r-- 1 xiaopeng xiaopeng 23K 2009-06-10 15:07 test.jpg

              xiaopeng@ubuntu:~/test$ zip -n .jpg test.zip *

              adding: duality.jpg (stored 0%)

              adding: test1 (deflated 30%)

              adding: test2 (deflated 65%)

              adding: test3 (deflated 64%)

              adding: test4 (deflated 73%)

              adding: test.jpg (stored 0%)

              jpg花样的没有压缩而是直接生存了

              代码如下:

              xiaopeng@ubuntu:~/test$

              若是需要直接生存的花样多于一个  ,可以用冒号离隔 如: -n .jpg: .mpg

              小技巧  ,有时间一个目录下要压缩的文件许多 ,可是有那么很少的几个不压缩  ,那么我们可以用-x参数来清除这几个不压缩的  。例如

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              duality.jpg test1 test2 test3 test4 test.jpg test.zip

              xiaopeng@ubuntu:~/test$ zip -n .jpg test.zip * -x test2 不压缩test2

              updating: duality.jpg (stored 0%)

              updating: test1 (deflated 30%)

              updating: test3 (deflated 64%)

              updating: test4 (deflated 73%)

              updating: test.jpg (stored 0%)

              xiaopeng@ubuntu:~/test$

              可以看到test2没有被压缩  ,而是直接跳过了它  。

              压缩链接  ,zip会先读取该链接的指向的原文件的内容  ,然后再压缩  ,而且压缩完了  ,该链接也就不存在了 。

              另外  ,压缩率也是可以调整的  。品级是1到9 ,1最低  ,9最高  ,默认是6  。我们可以用1和9来比力下  ,压缩率  。

              代码如下:

              xiaopeng@ubuntu:~/test$ zip -1 low.zip *

              adding: test1 (deflated 30%)

              adding: test2 (deflated 63%)

              adding: test3 (deflated 62%)

              adding: test4 (deflated 70%)

              xiaopeng@ubuntu:~/test$ zip -9 high.zip *

              adding: low.zip (deflated 4%)

              adding: test1 (deflated 30%)

              adding: test2 (deflated 65%)

              adding: test3 (deflated 64%)

              adding: test4 (deflated 73%)

              由于文件都比力小  ,效果不是很显着  ,可是9的压缩率确实高了一点点  。

              压缩率高  ,节约空间  ,可是压缩时间要长 ,压缩率低 ,节约空间少 ,可是用时间少  ,以是我们要合理选择压缩率  ,一样平常都用默认  。

              zip文件解压缩  。这个比力简朴  ,就是unzip下令 。

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test.zip

              xiaopeng@ubuntu:~/test$ unzip test.zip

              Archive: test.zip

              inflating: test1

              inflating: test2

              inflating: test3

              inflating: test4

              xiaopeng@ubuntu:~/test$

              固然也可以用-x参数来指定哪个文件不需要压缩  。

              代码如下:

              xiaopeng@ubuntu:~/test$ unzip test.zip -x test3 test3不需要压缩出来

              Archive: test.zip

              inflating: test1

              inflating: test2

              inflating: test4

              xiaopeng@ubuntu:~/test$

              另有一个很有用的参数  ,-Z ,注重是大写的Z  。作用是检察压缩文件的内容  。就像windows中的winzip,我们不用解压缩 ,也可以打开看看内里有什么文件 ,文件的类型什么  。好比我想看看test.zip内里的内容  ,而又不想把这个解压缩了再看 ,可以如下操作  。

              代码如下:

              xiaopeng@ubuntu:~/test$ unzip -Z test.zip

              Archive: test.zip 5069 bytes 4 files

              -rw-r--r-- 2.3 unx 212 tx defN 25-Jun-09 14:13 test1

              -rw-r--r-- 2.3 unx 1233 tx defN 25-Jun-09 14:13 test2

              -rw-r--r-- 2.3 unx 3412 tx defN 25-Jun-09 14:14 test3

              -rw-r--r-- 2.3 unx 10091 tx defN 25-Jun-09 14:14 test4

              4 files, 14948 bytes uncompressed, 4567 bytes compressed: 69.4%

              xiaopeng@ubuntu:~/test$

              固然除了这些参数外 ,另有许多参数可以使用  ,这里就纷歧一实验了 ,我们可以在使用的历程中加以掌握  。

              2、zip与 tar

              若是你在Linux内里安装过软件压缩包  ,对这个以.tar.gz为后缀的压缩文件不会生疏  ,好比我们在Linux QQ 的下载页面http://im.qq.com/qq/linux/download.shtml ,就会看到其中一个安装包就是.tar.gz包  。

              这种包带两个后缀是有缘故原由的 ,gz和tar 是划分由两种法式发生的 。gz时由gzip压缩而成的压缩文件 ,压缩效果和zip差不多  ,可是和zip最大的差别在于  ,gzip无法把许多个单一文件压缩成一个单一文件  ,以是tar就有了用武之地  ,tar不是什么压缩法式  ,它是用来打包文件的  。tar和gzip一见如故 ,两小我私家互助起来实现压缩  ,也就是当多个文件压缩时  ,先用tar把这些文件打包  ,成为.tar的包  ,然后再由gzip压缩这个包 ,于是就有了.tar.gz的文件花样 。

              首先先看一下gzip和 gunzip的应用  。gzip的用法很简朴  ,后面加上要压缩的文件名就行 。

              代码如下:

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 24K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 212 2009-06-25 15:49 test1

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              xiaopeng@ubuntu:~/test$ gzip test1

              xiaopeng@ubuntu:~/test$ ls -lh

              总用量 24K

              代码如下:

              -rw-r--r-- 1 xiaopeng xiaopeng 173 2009-06-25 15:49 test1.gz

              -rw-r--r-- 1 xiaopeng xiaopeng 1.3K 2009-06-25 14:13 test2

              -rw-r--r-- 1 xiaopeng xiaopeng 3.4K 2009-06-25 14:14 test3

              -rw-r--r-- 1 xiaopeng xiaopeng 9.9K 2009-06-25 14:14 test4

              注重和zip的差别 ,只要在下令后加上要压缩的文件名即可  ,系统会自动为天生的压缩文件起名为原文件名加后缀.gz ,而且原文件在压缩完成后会被删除  。

              解压缩用gunzip

              代码如下:

              xiaopeng@ubuntu:~/test$ gunzip *.gz

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4

              xiaopeng@ubuntu:~/test$

              完成后以前的压缩文件test1.gz也会被删除 。

              同样gzip在解压前也可以检察文件内容  ,用参数-l  ,

              gzip也支持压缩率修改  ,为1到9  ,和zip相同  。

              下面看tar的用应 。tar是用来打包文件的  ,打包后的包的巨细和以前所有原文件巨细的和是相等的 ,(实在巨细是不相等的 ,打完包后的巨细大于源文件的巨细和  ,这个可以验证一下 。《Ubuntu 入门到醒目》说一样大  ,显然是差池的)也就是说tar没有压缩的效果 。tar有很是多的参数  ,可以通过在线资助文档检察  ,或者用--help下令检察  。这里我们只用简朴用到几个  。

              首先是多个文件打包 。看例子  。

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4

              xiaopeng@ubuntu:~/test$ tar -cvf test.tar *

              是把当前目录下的所有文件打包成test.tar 几个参数的意义为: c(Creat)建设新文件 v(Verbose)显示下令执行时的信息 f(File)指定打包为文件形式 。

              代码如下:

              test1

              test2

              test3

              test4

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4 test.tar

              xiaopeng@ubuntu:~/test$

              要解开tar文件  ,只需把参数中的c改为x(eXtract)即可

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test.tar

              xiaopeng@ubuntu:~/test$ tar -xvf test.tar

              test1

              test2

              test3

              test4

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4 test.tar

              xiaopeng@ubuntu:~/test$

              下面我们看一下tar和gzip互助完成对4个文件的压缩 。步骤是先用tar打包  ,然后对这个.tar包用gzip压缩 ,最后获得.tar.gz文件  。例子:

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4

              xiaopeng@ubuntu:~/test$ tar cvf test.tar * 首先打包成test.tar

              test1

              test2

              test3

              test4

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4 test.tar

              xiaopeng@ubuntu:~/test$ gzip test.tar 把test.tar用gzip压缩成test.tar.gz 压缩包  。

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4 test.tar.gz

              xiaopeng@ubuntu:~/test$

              解压.tar.gz包时  ,和压缩历程相反  ,现解压  ,再tar把包打开 。

              代码如下:

              xiaopeng@ubuntu:~/test$ ls

              test.tar.gz

              xiaopeng@ubuntu:~/test$ gunzip test.tar.gz 先用gunzip把.tar.gz包解压缩

              xiaopeng@ubuntu:~/test$ ls

              test.tar

              xiaopeng@ubuntu:~/test$ tar xvf test.tar 然后用tar把.tar包打开

              test1

              test2

              test3

              test4

              xiaopeng@ubuntu:~/test$ ls

              test1 test2 test3 test4 test.tar

              xiaopeng@ubuntu:~/test$

              还可以tar 和gzip同时实现的 ,只要在tar参数加一个z即可 tar -xvfz test.tar.gz 即可实现上面两个下令的功效  。

              照旧比力好明白的 。