Linux操作命令分类详解 - 压缩备份

Posted 孔子-说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux操作命令分类详解 - 压缩备份相关的知识,希望对你有一定的参考价值。

目录

系列文章

1、备份还原

1.1 tar 备份还原文件

2、压缩解压命令

2.1 打包跟压缩的区别

2.2 tar 打包压缩命令

2.3 gzip/gunzip 压缩解压命令

2.4 zip/unzip 压缩解压命令

2.5 压缩解压命令总结


系列文章

Linux操作命令分类详解 - 命令速查(一)

Linux操作命令分类详解 - 目录文件(二)

Linux操作命令分类详解 - 用户权限(三)

Linux操作命令分类详解 - 压缩备份(四)

Linux操作命令分类详解 - 进程查找其他(五)

1、备份还原

1.1 tar 备份还原文件

tar(英文全拼:tape archive )命令用于备份文件。是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。用tar备份的特点:

  • 1、保留权限
  • 2、适合备份整个目录
  • 3、可以选择不同的压缩方式
  • 4、如果选择不压缩还能实现增量备份,部份还原

1)语法

tar [-cxtzjvfpPN]   压缩文档的名称 欲备份目录

2)选项参数

  • -c :建立一个压缩文件的参数指令(create 的意思);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  •        注意:在参数中,c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -p :使用原文件的原来属性(属性不会依据使用者而变)
  • -P :(大写)可以使用绝对路径来压缩!
  • -N :(大写)比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
  • -C:(大写)目的目录,即切换到指定的目录
  • --exclude FILE:在压缩的过程中,不要将 FILE 打包!

3)实例1 - linux下备份自身系统

1.用root权限,运行完整的备份命令:

$ sudo su
# tar -cvpzf /media/disk/backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/tmp --exclude=/sys --exclude=/media --exclude=/home

解释:
* '-cvpzf'是我们给tar加的选项。
* /media/disk/backup.tgz是压缩包的存放路径与名称。
* ‘/'是我们想要备份的目录,我们想要备份根目录下的所有的东西,所以使用 / 作为根目录。
* '--exclude'就是我们要剔除的目录了。
  • 有些目录是不需要备份的。如:/proc目录、 /tmp目录、/sys目录,里面都是临时文件,备份容易出错,/home目录备份容易引起"tar: 由于前面延迟的错误而退出"的提示。 同时确保你没有任何东西挂载在/mnt、/media目录内,否则,会把被挂载的分区也备份在内,备份文件会很大。还要注意不要把备份文件本身也备份进去了,也需要剔除。
  • 备份结束以后,在你的/media/disk目录下有一个backup.tgz ,这就是你的备份文件。

2.恢复备份

慎用,将会把你目标路径下的所有同名文件替换成压缩文档里的文件,目标路径下多出的目录与文件并不会必删除。

sudo tar -xvpzf backup.tgz -C /

注:参数x是告诉tar程序解压缩备份文件。 -C 参数是指定tar程序解压缩到的目录。

恢复完了以后,再手工建立如下一些目录,最后重启:

  • mkdir proc
  • mkdir lost+found
  • mkdir sys
  • mkdir tmp
  • mkdir media

4)实例2 - linux下备份另一个linux系统

1.用root权限,运行完整的备份命令:

$ sudo su
# tar -cvpzf /media/disk-1/backup.tgz -C /media/disk .

注解:
备份文件的存放路径与名称为/media/disk-1/backup.tgz
只备份/meda/disk目录内的内容,不含/media/disk路径。
-C是临时切换工作目录,这样就不把/media/disk路径备份在压缩包里了。
备份时没有剔除任何目录,因为另一个linux没有运行,里面没有临时文件。
注意-C /media/disk的后面是空格加英文点。

2.恢复备份

建议先清空目标路径下的除/boot目录外的所有文件,再还原备份,命令如下:

还原/media/disk-1/backup.tgz压缩包到/media/disk目录下。
$ sudo su
# tar -xvpzf /media/disk-1/backup.tgz   -C /media/disk
或:
# cd /media/disk
# tar -xvpzf /media/disk-1/backup.tgz

2、压缩解压命令

linux主要有三种压缩方式:

  1. 1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
  2. 2.bzip:压缩形成的文件小,但是可用性不如gzip
  3. 3.xz:是最新的压缩方式,可以自动提供最佳的压缩率

建议的压缩的时候标明后缀:

参数作用命名方式
-z用于gzip压缩方式文件名.tar.gz
-j用于bzip2压缩方式文件名.tar.bz2
-J用于xz压缩方式文件名.tar.xz

有些压缩程序提示命令找不到,需要进行安装,例如:

yum install unzip
或在ubuntu上:
apt-get install unzip

2.1 打包跟压缩的区别

打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩。

  • Windows的压缩文件的扩展名:  .zip/.rar
  • linux中的打包文件:aa.tar
  • linux中的压缩文件:bb.gz
  • linux中打包并压缩的文件:.tar.gz,一般情况下打包和压缩是一起进行的。

2.2 tar 打包压缩命令

该命令是将多个命令打包到一起,并且可以实现解压打包。打包是将多个文件或者目录变成一个总的文件,压缩则是将一个大的文件通过压缩算法变成一个小文件。

1)语法

tar 参数  压缩后的文档名称 欲压缩的目录或文件...

压缩:tar -cvz/j/J -f filename.tar.gz/bz2/xz
查询:tar -tvz/j/J -f filename.tar.gz/bz2/xz
解压缩:tar -xvz/j/J -f filename.tar.gz/bz2/xz 
其中:x:代表解压

2)选项参数

  • z(常用)     通过gzip压缩或解压缩,一般都是以tar.gz结尾
  • j(常用)      通过bzip2压缩和解压缩 一般都是以tar.bz2结尾
  • c(常用)     创建新的tar包
  • v(常用)     显示详细的tar命令执行过程
  • f(常用)      指定压缩文件的名字,组合中一般f放到最后,因为f后面要立即接文件名
  • x(常用)     解开tar包
  • C(常用)    指定解压的目录路径

3)常用参数搭配

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

tar -rf all.tar abc.sh
将abc.sh追加进入all.tar文件中

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

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

压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar

tar -xzf nginx-1.14.0.tar.gz //解压到当前目录
tar -zxf nginx-1.14.0.tar.gz -C /usr/local/nginx  #解压到对应目录
tar -zxvf nginx...tar.gz #解压并显示过程

压缩文件
# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c

列出压缩文件内容
# tar -tzvf test.tar.gz 
-rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

解压文件
# tar -xzvf test.tar.gz 
a.c

命令:tar -zcvf 打包压缩后的文件名 要打包的文件
其中:z:调用gzip压缩命令进行压缩
  c:打包文件
  v:显示运行过程
  f:指定文件名
  
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt 
或:tar -zcvf ab.tar  *

4)实例

1. 打包压缩站点目录

[root@boxiaoyuan ~]# mkdir -p  /var/www/html/boxiaoyuan/test
[root@boxiaoyuan ~]# touch /var/www/html/{1..10}.html
[root@boxiaoyuan ~]# ls /var/www/html
10.html  2.html  4.html  6.html  8.html  boxiaoyuan
1.html   3.html  5.html  7.html  9.html
[root@boxiaoyuan ~]# cd /var/www/
[root@boxiaoyuan www]# cd html/
[root@boxiaoyuan html]# ls
10.html  1.html  2.html  3.html  4.html  5.html  6.html  7.html  8.html  9.html
[root@boxiaoyuan html]# cd ..
[root@boxiaoyuan www]# tar zcvf www.tar.gz ./html/ # linux中一般都是以tar.gz结尾
./html/
./html/7.html
./html/4.html
./html/6.html
./html/3.html
./html/1.html
./html/9.html
./html/8.html
./html/2.html
./html/5.html
./html/10.html

2. 查看压缩的内容

[root@boxiaoyuan www]# tar ztvf www.tar.gz   
drwxr-xr-x root/root         0 2019-04-16 19:42 ./html/
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/7.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/4.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/6.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/3.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/1.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/9.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/8.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/2.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/5.html
-rw-r--r-- root/root         0 2019-04-16 19:40 ./html/10.html

3. 解压缩文件

[root@boxiaoyuan www]# tar zxvf www.tar.gz 
./html/
./html/7.html
./html/4.html
./html/6.html
./html/3.html
./html/1.html
./html/9.html
./html/8.html
./html/2.html
./html/5.html
./html/10.html

2.3 gzip/gunzip 压缩解压命令

Linux gzip命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

  • 强调一下,gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。
  • gzip命令不会打包目录,而是把目录下所有的子文件分别压缩。这是因为在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。

Linux gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成

1)语法

gzip[参数][文件或者目录]

2)选项参数

  • -a或--ascii  使用ASCII文字模式。 
  • -c或--stdout或--to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。 
  • -d或--decompress或----uncompress  解开压缩文件。 
  • -f或--force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 
  • -h或--help  在线帮助。 
  • -l或--list  列出压缩文件的相关信息。 
  • -L或--license  显示版本与版权信息。 
  • -n或--no-name  压缩文件时,不保存原来的文件名称及时间戳记。 
  • -N或--name  压缩文件时,保存原来的文件名称及时间戳记。 
  • -q或--quiet  不显示警告信息。 
  • -r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 
  • -S<压缩字尾字符串>或----suffix<压缩字尾字符串>  更改压缩字尾字符串。 
  • -t或--test  测试压缩文件是否正确无误。 
  • -v或--verbose  显示指令执行过程。 
  • -V或--version  显示版本信息。 
  • -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。 

3)常用参数搭配

实例1:把test6目录下的每个文件压缩成.gz文件
命令:gzip *

实例2:把例1中每个压缩的文件解压,并列出详细的信息
命令:gzip -dv *

实例3:详细显示例1中每个压缩的文件的信息,并不解压
命令:gzip -l *

实例4:压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz
命令:gzip -r log.tar

实例5:递归的压缩目录
命令:gzip -rv test6

实例6:递归地解压目录
命令:gzip -dr test6

在使用 gzip 命令压缩文件时,源文件会消失,从而生成压缩文件。这时有些人会有强迫症,就逼问笔者:能不能在压缩文件的时候,不让源文件消失?好吧,也是可以的,不过很别扭。
[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样可以缩文件的同时不删除源文件
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog
#可以看到压缩文件和源文件都存在

4)实例

实例1:把test6目录下的每个文件压缩成.gz文件

命令:gzip *

[root@localhost test6]# ll

总计 604

---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log

---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log

-rw-r--r-- 1 mail users     61 11-30 08:39 log2013.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2014.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2015.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2016.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2017.log

[root@localhost test6]# gzip *

[root@localhost test6]# ll

总计 28

---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz

---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

-rw-r--r-- 1 mail users   70 11-30 08:39 log2013.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2014.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2015.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2016.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2017.log.gz

[root@localhost test6]#

实例2:把例1中每个压缩的文件解压,并列出详细的信息

命令:gzip -dv *

[root@localhost test6]# ll

总计 28

---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz

---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

-rw-r--r-- 1 mail users   70 11-30 08:39 log2013.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2014.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2015.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2016.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2017.log.gz

[root@localhost test6]# gzip -dv *

linklog.log.gz:  99.6% -- replaced with linklog.log

log2012.log.gz:  99.6% -- replaced with log2012.log

log2013.log.gz:  47.5% -- replaced with log2013.log

log2014.log.gz:   0.0% -- replaced with log2014.log

log2015.log.gz:   0.0% -- replaced with log2015.log

log2016.log.gz:   0.0% -- replaced with log2016.log

log2017.log.gz:   0.0% -- replaced with log2017.log

[root@localhost test6]# ll

总计 604

---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log

---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log

-rw-r--r-- 1 mail users     61 11-30 08:39 log2013.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2014.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2015.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2016.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2017.log

[root@localhost test6]#

实例3:详细显示例1中每个压缩的文件的信息,并不解压

命令:gzip -l *

[root@localhost test6]# gzip -l *

         compressed        uncompressed  ratio uncompressed_name

               1341              302108  99.6% linklog.log

               1341              302108  99.6% log2012.log

                 70                  61  47.5% log2013.log

                 32                   0   0.0% log2014.log

                 32                   0   0.0% log2015.log

                 32                   0   0.0% log2016.log

                 32                   0   0.0% log2017.log

               2880              604277  99.5% (totals)

实例4:压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz

命令:gzip -r log.tar

[root@localhost test]# ls -al log.tar

-rw-r--r-- 1 root root 307200 11-29 17:54 log.tar

[root@localhost test]# gzip -r log.tar

[root@localhost test]# ls -al log.tar.gz 

-rw-r--r-- 1 root root 1421 11-29 17:54 log.tar.gz

实例5:递归的压缩目录

命令:gzip -rv test6

[root@localhost test6]# ll

总计 604

---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log

---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log

-rw-r--r-- 1 mail users     61 11-30 08:39 log2013.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2014.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2015.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2016.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2017.log

[root@localhost test6]# cd ..

[root@localhost test]# gzip -rv test6

test6/log2014.log:        0.0% -- replaced with test6/log2014.log.gz

test6/linklog.log:       99.6% -- replaced with test6/linklog.log.gz

test6/log2015.log:        0.0% -- replaced with test6/log2015.log.gz

test6/log2013.log:       47.5% -- replaced with test6/log2013.log.gz

test6/log2012.log:       99.6% -- replaced with test6/log2012.log.gz

test6/log2017.log:        0.0% -- replaced with test6/log2017.log.gz

test6/log2016.log:        0.0% -- replaced with test6/log2016.log.gz

[root@localhost test]# cd test6

[root@localhost test6]# ll

总计 28

---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz

---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

-rw-r--r-- 1 mail users   70 11-30 08:39 log2013.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2014.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2015.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2016.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2017.log.gz

实例6:递归地解压目录

命令:gzip -dr test6

[root@localhost test6]# ll

总计 28

---xr--r-- 1 root mail  1341 11-30 08:39 linklog.log.gz

---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz

-rw-r--r-- 1 mail users   70 11-30 08:39 log2013.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2014.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2015.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2016.log.gz

-rw-r--r-- 1 root mail    32 11-30 08:39 log2017.log.gz

[root@localhost test6]# cd ..

[root@localhost test]# gzip -dr test6

[root@localhost test]# cd test6

[root@localhost test6]# ll

总计 604

---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log

---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log

-rw-r--r-- 1 mail users     61 11-30 08:39 log2013.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2014.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2015.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2016.log

-rw-r--r-- 1 root mail       0 11-30 08:39 log2017.log

[root@localhost test6]#

2.4 zip/unzip 压缩解压命令

在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装。查看有没有安装zip跟unzip命令的命令:rpm -q zip unzip ,如果有安装了命令则会显示出命令的版本号。

1)语法

zip [参数] [压缩包名] [压缩的目录或者文件的路径]

unzip [参数] [压缩文件]  (-d [目录])  //如果不是用括号里面的内容,则解压文件在当前工作目录

2)选项参数

zip参数:

  • -m    将文件压缩后,删除原文件
  • -o    将压缩文件内的所有文件的最新变动时间设为压缩的时间
  • -q    安静模式,在压缩的时候不显示指令执行的过程
  • -r    递归压缩,将自定目录下的所有子文件以及文件一起处理
  • -x    ”文件列表“,压缩时排除文件列表中的文件

unzip参数:

  • -c    将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
  • -l    显示压缩文件内所包含的文件
  • -t    检查压缩文件是否正确
  • -v    执行时显示压缩文件的详细信息
  • -q    安静模式,执行时不显示任何信息
  • -d    指定文件解压后存储的目录
  • -x    指定不要处理压缩文件中的那些文件

3)压缩实例

a.压缩目录,将/root/目录下的harry目录压缩为名为harry.zip压缩包:

1.正常压缩,不加-q选项,显示压缩的过程:zip - r harry.zip harry

2.加上-q选项,安静模式输出,不显示压缩的过程:zip -q - r harry.zip harry

b.压缩多个文件,将/root/目录下的ceshi.txt文件和anaconda-ks.cfg文件和Golden.apk文件压缩为名为jihe.zip的压缩包,因为压缩的全是文件,所以可以不用加上-r选项: zip -q jihe.zip anaconda-ks.cfg ceshi.txt Golden.apk

c.压缩文件跟目录,将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和harry目录压缩成名为dajihe.zip的压缩包,命令:zip -q -r  dajihe.zip ceshi.txt anaconda-ks.cfg harry

d.将/root/目录下的harry目录压缩为harry1.zip压缩包,排除harry目录下的ha.txt文件:zip -r harry1.zip harry -x "./harry/ha.txt"

4)解压缩实例

a.将harry.zip压缩包解压缩的结果显示出来,具体会显示到每一个文件跟每一个文件的内容:unzip -c harry.zip

b.显示jihe.zip压缩包里面包含的文件:unzip -l jihe.zip

c.检查dajihe.zip压缩文件是否正确,全部OK表示全部文件都是正确的: unzip -t dajihe.zip

d.不解压压缩文件dajihe.zip,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):unzip -v dajihe.zip

#使用-v显示的信息比使用-l显示的信息更加详细

e.将dajihe.zip压缩包解压到/opt/目录下:unzip -q dajihe.zip -d /opt/

2.5 压缩解压命令总结

1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压  

解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数
unzip -n test.zip
unzip -n -d /temp test.zip
只看一下zip压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
查看显示的文件列表还包含压缩比率
unzip -v test.zip
检查zip文件是否损坏
unzip -t test.zip
如果已有相同的文件存在,要求unzip命令覆盖原先的文件
unzip -o test.zip -d /tmp/
示例:
 eg1:  unzip mydata.zip -d mydatabak #解压到mydatabak目录
 eg2 :zip -r xxx.zip ./*  #压缩当前目录下的内容为一个xxx.zip
 eg3: zip xx.zip  a.txt b.txt c.txt #将abc三个文件压缩为xx.zip
10. xz
	这是两层压缩,外面是xz压缩方式,里层是tar压缩,所以可以分两步实现解压
	$ xz -d node-v6.10.1-linux-x64.tar.xz
    $ tar -xvf node-v6.10.1-linux-x64.tar

以上是关于Linux操作命令分类详解 - 压缩备份的主要内容,如果未能解决你的问题,请参考以下文章

Linux操作命令分类详解 - 命令速查

Linux操作命令分类详解 - 命令速查

linux上的rsync命令详解

linux压缩(解压缩)命令详解

Linux tar 命令参数及用法详解--Linux打包备份命令

Linux下tar命令详解 𯒖