Linux命令 — 压缩与解压命令大全

        压缩与解压命令,是Linux中比较常用的命令。之前用到压缩与解压的时候,都是临时在网上搜,用了之后过段时间没用就忘了。虽然命令的用法很容易在网上搜到,但是每次用到的时候都去搜,也挺浪费时间的。所以,在这里整理了一篇Linux压缩与解压缩命令大全,比较深入地研究和掌握这些命令的用法。

        之所以压缩与解压比较常用,是因为文件压缩的好处:减少存储空间,减少文件传输时间。对于文件数量比较多,为了减少存储空间和传输时间,除了用到压缩外,还会涉及到打包。这里需要注意,压缩和打包是两个不同的概念:打包是将大量文件或目录打包成一个文件(多对一);压缩是将一个大文件压缩成一个小文件(一对一)。当压缩大量文件的时候,需要先借助打包工具将所有文件打成一个包,然后再用压缩工具对该包进行压缩。

        Windows下最常见的压缩文件格式只有zip和rar两种,但是Linux下的压缩文件格式有gz、tar.gz、tgz、tar.bz2、tbz2、bz2、tar、zip和rar等。然而,zip和rar这两种Windows最常见的压缩文件格式在Linux下却很少使用。如果对Linux压缩与解压命令不熟悉的话,很容易被众多的压缩文件格式吓晕。下面结合示例介绍Linux中的常用压缩与解压命令。示例如下:

[root@linux tmp]# ls
test1.txt  test2.txt  test3.txt
[root@linux tmp]# cat test1.txt
Hello, test1!
[root@linux tmp]# cat test2.txt
Hello, test2!
[root@linux tmp]# cat test3.txt
Hello, test3!

1. gzip

        gzip程序压缩的文件以.gz结尾,与其对应的解压程序是gunzip,也可以用gzip -d解压。


        gzip常用参数说明:

                -c:将压缩的数据输出到屏幕上

                -d:解压缩

                -r:递归压缩文件夹

                -t:检验一个压缩档的一致性

                -1:压缩最快,压缩比最差

                -9:压缩最慢,压缩比最好

  • 压缩:gzip file
[root@linux tmp]# gzip test1.txt
[root@linux tmp]# ls
test1.txt.gz  test2.txt  test3.txt
  • 解压1:gunzip file.gz
[root@linux tmp]# gunzip test1.txt.gz
[root@linux tmp]# ls
test1.txt  test2.txt  test3.txt
  • 解压2:gzip -d file.gz
[root@linux tmp]# gzip -d test1.txt.gz
[root@linux tmp]# ls
test1.txt  test2.txt  test3.txt
  • zcat解压到标准输出:
[root@linux tmp]# zcat test1.txt.gz
Hello, test1!
[root@linux tmp]# ls
test1.txt.gz  test2.txt  test3.txt

2. bzip2

        bzip2程序压缩的文件以.bz2结尾,与其对应的解压程序是bunzip2,也可以用bzip2 -d解压。


        bzip2常用参数说明:

                -c:将压缩的数据输出到屏幕上

                -d:解压缩

                -t:检验一个压缩档的一致性

                -1:压缩最快,压缩比最差

                -9:压缩最慢,压缩比最好

  • 压缩:bzip2 file
[root@linux tmp]# bzip2 test1.txt
[root@linux tmp]# ls
test1.txt.bz2  test2.txt  test3.txt
  • 解压1:bunzip2 file.bz2
[root@linux tmp]# bunzip2 test1.txt.bz2
[root@linux tmp]# ls
test1.txt  test2.txt  test3.txt
  • 解压2:bzip2 -d file.bz2
[root@linux tmp]# bzip2 -d test1.txt.bz2
[root@linux tmp]# ls
test1.txt  test2.txt  test3.txt
  • bzcat解压到标准输出:
[root@linux tmp]# bzip2 test1.txt
[root@linux tmp]# ls
test1.txt.bz2  test2.txt  test3.txt
[root@linux tmp]# bzcat test1.txt.bz2
Hello, test1!
[root@linux tmp]# ls
test1.txt.bz2  test2.txt  test3.txt

3. tar

        tar程序既可以打包,又可以解包。同时,在打包的同时可以通过操作参数调用gzip或bzip2压缩程序进行压缩,在解压的同时也可以通过操作参数调用gunzip或bunzip2解压程序进行解压。从表面上看,该程序同时具有打包压缩和解压解包的功能,因此是很常用的一个命令。


        操作参数:

                -A, --catenate, --concatenate 将一存档与已有的存档合并

                -c, --create 建立新的存档

                -d, --diff, --compare 比较存档与当前文件的不同之处

                -r, --append 附加到存档结尾

                -t, --list 列出存档中文件的目录

                -u, --update 仅将较新的文件附加到存档中

                -x, --extract, --get 从存档展开文件

        这七个命令,只能根据需要在压缩或解压时,选择其中一个。如果选择的操作的操作个数多余一个,就会提示如下错误:

[root@linux tmp]# tar -cuf test.tar *.txt
tar: You may not specify more than one `-Acdtrux' option
Try `tar --help' or `tar --usage' for more information.

        常用选项:

-f, --file 使用档案文件名,这个是必选项,而且是最后一个参数,之后立即接档案文件名

-j, --bzip2 调用bzip2压缩或解压,压缩包格式为tar.gz或tgz

-z, --gzip 调用gzip压缩或解压,压缩包格式为tar.bz2

-v, --verbose 显示tar操作过程中的文件信息。

-p, --preserve-permissions 保持原文件原来的属性,不因使用者而改变


基本用法示例:

  • tar的打包与解包:

  # tar -cf all.tar *.jpg

  这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

  # tar -rf all.tar *.gif

  这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

  # tar -uf all.tar logo.gif

  这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

  # tar -tf all.tar

  这条命令是列出all.tar包中所有文件,-t是列出文件的意思

  # tar -xf all.tar

  这条命令是解出all.tar包中所有文件,-x是解包的意思

  • tar.gz的压缩与解压:

  # tar -czf all.tar.gz *.jpg

  这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz

  # tar -xzf all.tar.gz

  这条命令是将上面产生的包解开。

  • tar.bz2的压缩与解压:

  # tar -cjf all.tar.bz2 *.jpg

  这条命令是将所有.jpg的文件打成一个tar包,并且调用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2

  # tar -xjf all.tar.bz2

  这条命令是将上面产生的包解开。

4. zip

        zip程序压缩的文件以.zip结尾,与其对应的解压程序是unzip。


zip常用参数说明:

        -m:将被压缩文件移到压缩文件中

        -r:递归压缩文件夹

        -x:排除参数后面的文件

        -i:包括参数后面的文件

        -1:压缩最快,压缩比最差

        -9:压缩最慢,压缩比最好

  • 压缩:zip all.zip files
[root@linux tmp]# zip all.zip *.txt
  adding: test1.txt (stored 0%)
  adding: test2.txt (stored 0%)
  adding: test3.txt (stored 0%)
[root@linux tmp]# ls
all.zip  test1.txt  test2.txt  test3.txt
         zip是一个打包压缩程序,可以将多个文件打包并压缩成一个文件。而gzip和bzip2都只是压缩程序,多个文件只会分别压缩成多个压缩文件。

        gzip压缩多个文件:

[root@linux tmp]# gzip *.txt
[root@linux tmp]# ls
test1.txt.gz  test2.txt.gz  test3.txt.gz
        bzip2压缩多个文件:
[root@linux tmp]# bzip2 *.txt
[root@linux tmp]# ls
test1.txt.bz2  test2.txt.bz2  test3.txt.bz2
  • 解压:unzip all.zip

5. rar

        rar程序压缩的文件以.rar结尾,与其对应的解压程序是unrar。需要注意的是,处理rar文件需要安装RAR for Linux。

  • 压缩:rar a all.rar files
  • 解压:unrar e all.rar

6.总结

1. 打包和压缩的概念:

打包:将大量文件或目录打包成一个文件。(多对一)

压缩:将一个大文件压缩成一个小文件。(一对一)

2. 无论打包还是解包,原文件都会继续存在。而压缩与解压,原文件将消失。

3. zcat和bzcat都是将压缩文件的内容解压到标准输出,原文件仍将继续存在。

4. bzip2不支持压缩文件夹,而gzip的-r参数可以支持压缩文件夹。

5. zip是一个打包压缩程序,而gzip和bzip2都只是压缩程序。

Reference

http://blog.csdn.net/hbcui1984/article/details/1583796

http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值