Linux中常用的备份与压缩命令

2018-12-06 08:33:44 +0800 CST

tar命令

tar 命令用来创建存档和提取归档文件。

语法:
  语法是 
     tar [命令开关] [压缩包] [将要打包压缩的文件或目录]

命令开关:
     

-c创建存档,创建备份
-x提取存档,恢复备份。
-f创建给出文件名的存档。
-t显示或列出存档中的文件。
-u存档并存入到现有的存档文件。
-v显示存档过的详细信息。
-A连接归档文件。


示例:

  1. 对文件或目录存档 :
    tar -cvf backup.tar /etc
    这个命令创建了名字为backup.tar的存档文件,这个存档是对/etc目录的存档。
    在这里,
    backup.tar– 是被创建的tar文件。
    /etc– 是被存档的目录。

  2. 对目录或文件存档并且在存储设备中存储它:
    tar -cvf /dev/fd0 /home/user1/HGB
    这个命令将存档/etc这个目录并且把它存储在软盘中。
    在这里,
    /dev/fd0– 是存储存档文件的软盘的名称。
    /home/user1/HGB– 是被存档的目录。

  3. 提取存档文件:
    tar -xvf backup.tar
    这个命令将提取backup.tar 文件。

  4. 列出存档中的文件:
    tar -tvf backup.tar
    上述命令将显示被存档在backup.tar 文件中的文件和目录。

gzip命令

减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件 时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

语法:gzip [选项] 压缩(解压缩)的文件名

各选项的含义:

-c
将输出写到标准输出上,并保留原有文件。
-d
将压缩文件解压。
-l
对每个压缩文件,显示下列字段:
压缩文件的大小
未压缩文件的大小
压缩比
未压缩文件的名字
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t
测试,检查压缩文件是否完整。
-v
对每一个压缩和解压的文件,显示文件名和压缩比。
-num
用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为 6。

假设一个目录/home下有文件mm.txt、sort.txt、xx.com。

例1:把/home目录下的每个文件压缩 成.gz文件。

$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz

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

$ gzip -dv *
mm.txt.gz 43.1%—–replaced with mm.txt
sort.txt.gz 43.1%—–replaced with sort.txt
xx.com.gz 43.1%—–replaced with xx.com
$ ls
mm.txt sort.txt xx.com

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

$ gzip -l *
compressed uncompr. ratio uncompressed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz

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

$ gzip usr.tar
$ ls
usr.tar.gz
unzip命令

linux下解压zip文件

linux自带的unzip命令可以解压windows下的zip格式的压缩文件。

unzip命令

  语法:unzip [选项] 压缩文件名.zip

  各选项的含义分别为:

  -x 文件列表 解压缩文件,但不包括指定的file文件。

  -v 查看压缩文件目录,但不解压。

  -t 测试文件有无损坏,但不解压。

  -d 目录 把压缩文件解到指定目录下。

  -z 只显示压缩文件的注解。

  -n 不覆盖已经存在的文件。

  -o 覆盖已存在的文件且不要求用户确认。

  -j 不重建文档的目录结构,把所有文件解压到同一目录下。

  例1:将压缩文件text.zip在当前目录下解压缩。

  $ unzip text.zip

  例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

  $ unzip -n text.zip -d /tmp

  例3:查看压缩文件目录,但不解压。

  $ unzip -v text.zip