Linux文件打包/压缩和解压工具

目录大纲

  • 1.工具介绍
  • 2.tar结合bzip2/gzip使用介绍
    • 2.1.tar压缩
    • 2.2.tar解压
  • 3.zip
    • 3.1.zip压缩
    • 3.2.zip解压

1.工具介绍

tar是Linux下的归档工具,可以用来打包和备份文件。
tar一般配合压缩工具,将文件打成压缩包。
常用的压缩工具有:bzip2 、gzip

zip工具:可以用来压缩,解压文件。

windows下常见的是压缩包这个概念,而Linux下分打包和压缩两个概念。这是由于Linux下的压缩工具,大多只能压缩一个文件,所以得先打包多个文件成一个文件。

2.tar结合bzip2/gzip使用介绍

2.1.tar压缩

tar命令语法:tar (选项) (参数)

  • 常见选项含义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -A或--catenate:新增文件到以存在的备份文件;
    -B:设置区块大小;
    -c或--create:建立新的备份文件;
    -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    -d:记录文件的差别;
    -x或--extract或--get:从备份文件中还原文件;
    -t或--list:列出备份文件的内容;
    -z或--gzip或--ungzip:通过gzip指令处理备份文件;
    -Z或--compress或--uncompress:通过compress指令处理备份文件;
    -f<备份文件>或--file=<备份文件>:指定备份文件;
    -v或--verbose:显示指令执行过程;
    -r:添加文件到已经压缩的文件;
    -u:添加改变了和现有的文件到已经存在的压缩文件;
    -j:支持bzip2解压文件; -v:显示操作过程;
    -l:文件系统边界设置;
    -k:保留原有文件不覆盖;
    -m:保留文件不被覆盖;
    -w:确认压缩文件的正确性;
    -p或--same-permissions:用原来的文件权限还原文件;
    -P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
    -N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
    --exclude=<范本样式>:排除符合范本样式的文件。
  • 参数:
    文件或目录:指定要打包的文件或目录 列表。

使用案例:

  • 仅仅打包文件,不压缩:
    1
    2
    3
    4
    5
    [root@chmod ~]# tar -cvf test.tar test
    test/
    test/test.txt
    test/install.log.syslog
    test/install.log

-v 可以显示操作过程

  • tar 打包后使用gzip压缩:

    1
    [root@chmod ~]# tar -zcf test.tar.gz test
  • tar 打包后使用bzip2压缩:

    1
    2
    3
    [root@chmod ~]# tar -zcf test2/test.tar.gz test/
    [root@chmod ~]# ls test2/
    test.tar.gz

注意:压缩包存放的路径,我们可以使用相对路径,也可以使用绝对路径,但是被打包压缩的文件路径,建议使用相对路径,因为使用绝对路径,会给解压时候,带来麻烦。

test.tar、test.tar.gz、test.tar.bz2是文档名称,一般默认,使用.tar结尾代表打包文档,tar.gz结尾代表使用gizp压缩,tar.bz2代表使用了bzip2压缩。

  • 查看压缩包内的文件列表
    1
    2
    3
    4
    5
    [root@chmod ~]# tar -ztvf test.tar.gz
    drwxr-xr-x root/root 0 2016-08-29 14:36 test/
    -rw-r--r-- root/root 0 2016-04-26 18:41 test/test.txt
    -rw-r--r-- root/root 10609 2016-03-30 17:21 test/install.log.syslog
    -rw-r--r-- root/root 59917 2016-03-30 17:23 test/install.log

2.2.tar解压

1
2
3
4
5
6
7
[root@chmod test2]# tar -zxvf test.tar.gz -C /test
test/
test/test.txt
test/install.log.syslog
test/install.log
[root@chmod test2]# ls /test/
file2.sh file3.txt test

-x 可以提取文档
使用gzip打包压缩的,需要加-z选项,使用bizp2压缩的,需要加-j选项。
-C /test:解压到指定目录

一些高级选项:
-p: 保留文件属性
-N: 在文件夹中,比某个日期新的文件才备份
--exclude:排除部分文件

3.zip

3.1.zip压缩

压缩单个文件:

1
[root@chmod ~]# zip passwd.zip /etc/passwd

-r选项,压缩目录:

1
2
3
4
5
6
[root@chmod ~]# zip -r test.zip test/
adding: test/ (stored 0%)
adding: test/test.txt (stored 0%)
adding: test/install.log.syslog (deflated 86%)
adding: test/hello.txt (stored 0%)
adding: test/install.log (deflated 78%)

3.2.zip解压

解压到当前目录:

1
2
3
4
[root@chmod ~]# unzip passwd.zip
[root@chmod ~]# ll etc/
total 4
-rw-r--r-- 1 root root 1797 Aug 29 16:36 passwd

解压到指定目录:

1
2
3
[root@chmod ~]# unzip passwd.zip -d test2/
Archive: passwd.zip
inflating: test2/etc/passwd

文章目录
  1. 目录大纲
  2. 1.工具介绍
  3. 2.tar结合bzip2/gzip使用介绍
    1. 2.1.tar压缩
    2. 2.2.tar解压
  4. 3.zip
    1. 3.1.zip压缩
    2. 3.2.zip解压