美文网首页Linux学习|Gentoo/Arch/FreeBSDLinuxLinux学习之路
Linux学习笔记(二)---Linux打包(归档)和压缩详解

Linux学习笔记(二)---Linux打包(归档)和压缩详解

作者: 悟静家 | 来源:发表于2020-03-16 14:21 被阅读0次

    归档和压缩所各自代表的含义。
    归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。
    压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。
    Linux 下,常用归档命令有 2 个,分别是 tar 和 dd(相对而言,tar 的使用更为广泛);常用的压缩命令有很多,比如 gzip、zip、bzip2 等。
    tar命令做打包操作
    当 tar 命令用于打包操作时,该命令的基本格式为:
    [root@localhost ~]#tar [选项] 源文件或目录

    表 1 tar 打包命令常用选项及含义

    选项 含义
    -c 将多个文件或目录进行打包。
    -A 追加 tar 文件到归档文件。
    -f 包名 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
    -v 显示打包文件过程;需要注意的是,在使用 tar 命令指定选项时可以不在选项前面输入“-”。例如,使用“cvf”选项和 “-cvf”起到的作用一样。

    【例 1】打包文件和目录。

    [root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
    #把anacondehks.cfg打包为 anacondehks.cfg.tar文件
    

    【例 2】打包并压缩目录。
    首先声明一点,压缩命令不能直接压缩目录,必须先用 tar 命令将目录打包,然后才能用 gzip 命令或 bzip2 命令对打包文件进行压缩。例如:

    [root@localhost ~]#ll -d test test.tar
    drwxr-xr-x 2 root root 4096 6月 17 21:09 test
    -rw-r--r-- 1 root root 10240 6月 18 01:06 test.tar
    #我们之前已经把test目录打包成test.tar文件
    [root@localhost ~]# gzip test.tar
    [root@localhost ~]# ll test.tar.gz
    -rw-r--r-- 1 root root 176 6月 18 01:06 test.tar.gz
    #gzip命令会把test.tar压缩成test.tar.gz
    

    tar命令做解打包操作
    当 tar 命令用于对 tar 包做解打包操作时,该命令的基本格式如下:
    [root@localhost ~]#tar [选项] 压缩包

    表 2 tar 解打包常用选项及含义
    选项 含义
    -x 对 tar 包做解打包操作。
    -f 指定要解压的 tar 包的包名。
    -t 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。
    -C 目录 指定解打包位置。
    -v 显示解打包的具体过程。

    其实解打包和打包相比,只是把打包选项 "-cvf" 更换为 "-xvf"。我们来试试:

    [root@localhost ~]# tar -xvf anaconda-ks.cfg. tar
    #解打包到当前目录下
    

    如果使用 "-xvf" 选项,则会把包中的文件解压到当前目录下。如果想要指定解压位置,则需要使用 "-C(大写)" 选项。例如:

    [root@localhost ~]# tar -xvf test.tar -C /tmp
    #把文件包test.tar解打包到/tmp/目录下
    

    tar 命令是可以同时打包压缩的。
    当 tar 命令同时做打包压缩的操作时,其基本格式如下:
    [root@localhost ~]#tar [选项] 压缩包 源文件或目录

    此处常用的选项有以下 2 个,分别是:
    -z:压缩和解压缩 ".tar.gz" 格式;
    -j:压缩和解压缩 ".tar.bz2"格式。

    【例 1】压缩与解压缩 ".tar.gz"格式。

    [root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/
    #把/temp/目录直接打包压缩为".tar.gz"格式,通过"-z"来识别格式,"-cvf"和打包选项一致
    

    解压缩也只是在解打包选项 "-xvf" 前面加了一个 "-z" 选项。

    [root@localhost ~]# tar -zxvf tmp.tar.gz
    #解压缩与解打包".tar.gz"格式
    

    前面讲的选项 "-C" 用于指定解压位置、"-t" 用于查看压缩包内容,在这里同样适用。

    【例 2】压缩与解压缩 ".tar.bz2" 格式。
    和".tar.gz"格式唯一的不同就是"-zcvf"选项换成了 "-jcvf",如下所示:

    [root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/
    #打包压缩为".tar.bz2"格式,注意压缩包文件名
    [root@localhost ~]# tar -jxvf tmp.tar.bz2
    #解压缩与解打包".tar.bz2"格式
    

    把文件直接压缩成".tar.gz"和".tar.bz2"格式,才是 Linux 中最常用的压缩方式,这是大家一定要掌握的压缩和解压缩方法。

    相关文章

      网友评论

        本文标题:Linux学习笔记(二)---Linux打包(归档)和压缩详解

        本文链接:https://www.haomeiwen.com/subject/dtpwehtx.html