文件打包

    这个操作很常见,我们在 Windows 下应该都操作过:右键 -> 发送到 -> 压缩文件夹。那么,在 Linux 下,如何操作呢?

    文件打包有多种不同的方式(格式),下面我们一一介绍:

    tarUnix 系统上的打包工具,可以将多个文件合并成一个文件,扩展名为 。该命令最初的设计目的是将文件备份到磁带上( tape archive ),故而得名 tar

    为了节省存储空间,通常会对目标文件做进一步的压缩:

    准确讲,文件 打包压缩 是两个不同的操作。然而现实是,这两个不同的动词经常混用。反正大家都能理解,也就无伤大雅。

    先来看看如何打包。

    进入 resources 目录,里面有一份开源项目代码 dmi-python 。我们使用 tar 命令对其进行打包:

    列举

    有时,需要知道某个文件包到底包含哪些目录和文件。-t 参数可以轻松实现:

    1. $ tar -tf dmi-python.tar
    2. dmi-python/
    3. dmi-python/bin/
    4. dmi-python/README.md
    5. dmi-python/.gitignore
    6. dmi-python/dmi/
    7. dmi-python/dmi/__init__.py
    8. dmi-python/dmi/fetcher/
    9. dmi-python/dmi/parser/
    10. dmi-python/dmi/parser/__init__.py
    11. dmi-python/dmi/parser/parser.py
    12. dmi-python/dmi/parser/type_parsers/
    13. dmi-python/dmi/parser/type_parsers/t3_chassis.py
    14. dmi-python/dmi/parser/type_parsers/t4_processor.py
    15. dmi-python/dmi/parser/type_parsers/t127_end_of_table.py
    16. dmi-python/dmi/parser/type_parsers/t11_oem_strings.py
    17. dmi-python/dmi/parser/type_parsers/__init__.py
    18. dmi-python/dmi/parser/type_parsers/all.py
    19. dmi-python/dmi/parser/type_parsers/t0_bios.py
    20. dmi-python/dmi/parser/type_parsers/t32_system_boot.py
    21. dmi-python/dmi/parser/type_parsers/t17_memory_device.py
    22. dmi-python/dmi/parser/type_parsers/t19_memory_array_mapped_address.py
    23. dmi-python/dmi/parser/type_parsers/t126_inactive.py
    24. dmi-python/dmi/parser/type_parsers/t2_baseboard.py
    25. dmi-python/dmi/parser/type_parsers/base.py
    26. dmi-python/dmi/parser/type_parsers/t1_system.py
    27. dmi-python/dmi/fetcher/fake.py
    28. dmi-python/dmi/fetcher/__init__.py
    29. dmi-python/dmi/fetcher/windows.py
    30. dmi-python/bin/print-dmi-jsonic.py
    31. dmi-python/bin/dmi

    文件包可以进一步进行压缩,以降低存储空间消耗。文件压缩是一个独立的操作,可以通过独立的压缩命令进行压缩。以 gzip 为例:

    1. $ gzip dmi-python.tar

    命令执行后,生成新文件 dmi-python.tar.gz ,并删除旧文件 dmi-python.tar 。一般来说,压缩文件 .tar.gz 会比原文件 .tar 小若干甚至十倍。

    当然了, tar 命令也支持打包压缩一条龙服务——在打包命令的基础上加上 -z 参数:

    1. $ tar -zcf dmi-python.tar.gz dmi-python

    这个命令操作等同于以下两个独立的命令:

    注意到,压缩文件包扩展名分成两部分,后部分表明压缩方式,前部分表明原文件类型。当然了,对于压缩文件包,扩展名可以进行精简,形成短扩展名:

    解包

    从文件包还原被合并文件的过程称为解包,使用 -x 参数进行:

    1. $ tar -xf dmi-python.tar

    对于压缩过的文件包,也是如此:

    1. $ tar -xf dmi-python.tar.gz
    1. $ gunzip dmi-python.tar.gz
    2. $ tar -xf dmi-python.tar

    RAR 是另一种文件归档压缩格式, 在 Windows 平台上较为多见。Linux 管理员也需要学习 RAR 基本操作,以备不时之需。

    Linux 系统一般没有 rar 命名,需要通过包管理工具进行安装,安装方法因发行版而异。

    Debian / Ubuntu :

    打包

    执行 a 命令将文件或目录添加到压缩包:

    1. $ rar a dmi-python.rar dmi-python

    tar 命令类似, rar 命令也可以列举压缩包包含的目录和文件( l 命令 ):

    1. $ rar l dmi-python.rar

    解包

    解包一般采用 x 命令,该命令将压缩包内的目录及文件原封不动地解到当前目录:

    还可以用 e 命令解包,这种方式不保留目录结构,只将文件解到当前目录。如果不同目录下存在同名文件则产生冲突,需要通过覆盖或者忽略解决:

    订阅更新,获取更多学习资料,请关注我们的 微信公众号

    • 微信打赏