• linux常用命令(2):tar命令(压缩文件/解压缩文件)


    一、命令简介

    tar 用于将 Linux 的文件和目录创建为档案或将档案还原为文件和目录。此外,tar 也可以在档案中改变文件,或者向档案中加入新的文件。本程序最初的设计目的是将文件备份到磁带上(Tape ARchive),因而得名 tar。

    tar 的工作过程主要分为两个步骤,正向是打包与压缩,反向是解压缩与还原。打包指的是将一大堆文件或目录变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。反向的解压缩与还原刚好是相反的过程。tar 的压缩与解压缩,用到的主要是 gzip 与 bzip2 命令。

    那为什么在Linux中很少看到.zip和.rar这样的压缩包呢?
    zip和rar在压缩文件时无法保留文件的属性,所以才有tar指令的压缩,即先归档后压缩。
    Linux系统中,通常更倾向于使用.tar压缩文件格式,因为.tar文件不会进行压缩,只是将文件打包在一起,更适合用于归档和文件打包。

    在Linux中,常见的压缩包格式有:.tar.tar.xz.tar.gz(或.tgz)、.tar.bz2。这里要注意:.tar文件是一种仅打包不压缩的文件格式。
    .tar.xz.tar.gz(或.tgz)、.tar.bz2文件才是对.tar文件的压缩。
    所以.tar 文件本身并不是压缩文件,而是一种归档文件格式。

    二、安装与卸载

    1.检查linux上是否有tar命令

    yum list installed | grep tar
    
    • 1

    在这里插入图片描述
    2.安装tar命令

    yum -y install tar
    
    • 1

    3.扩展命令 安装 卸载 更新

    命令1:yum -y install [关键词]
    命令2:yum -y remove [关键词]
    命令3:yum -y update [关键词]
    
    • 1
    • 2
    • 3

    三、命令格式

    tar [OPTIONS] [FILE]...
    
    • 1

    选项说明

    -A, --catenate, --concatenate
    	新增文件到已存在的存档
    -c,--create
    	建立新的存档
    -C, --directory=DIR
    	将 tar 的工作目录从当前目录改为指定目录。该选项对顺序敏感,即影响其后的所有选项
    -d, --diff, --compare
    	对比档案与文件系统的差异
    --delete
    	从档案中删除制定的文件
    -f, --file=ARCHIVE
    	指定存档文件
    -j, --bzip2
    	通过 bzip2 命令压缩或解压缩档案
    -k, --keep-old-files
    	还原档案时,保留当前目录下的原有文件不被覆盖 
    -l, --check-links
    	如果不是所有链接都被转储,则打印一条消息
    -m, --touch
    	还原文件时,不变更文件的更改时间
    -N, --newer, --after-date=DATE
    	只将较指定日期更新的文件保存到档案中
    -O, --to-stdout
    	将提取的文件名和目录名打印到标准输出
    -p, --preserve-permissions, --same-permissions
    	提取文件时保留文件原来的权限
    -P, --absolute-names
    	创建存档时不移除文件名称前的 / 号
    -r, --append
    	追加文件到档案的末尾
    -t, --list
    	列出档案的内容
    -u, --update
    	添加比档案中文件更新的文件到档案中
    -v, --verbose
    	显示指令执行过程
    -W, --verify
    	向档案写入文件后尝试验证
    -x, --extract, --get
    	从档案提取文件  
    -z, --gzip, --gunzip, --ungzip
    	通过 gzip 命令压缩或解压档案
    -Z, --compress, --uncompress
    	通过 compress 指令处理备份文件
    --exclude=PATTERN
    	排除符合指定模式的文件
    -?, --help
    	显示短选项的概要信息并退出
    --usage
    	显示可用选项列表并退出
    --version
    	显示版本和版权信息并退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    四、常用示例

    linux上有文件目录结构如下,结合以下文件讲解tar示例

    /home/test
    ├── a.txt
    ├── b.log
    ├── test01
        └── c.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.1、打包

    (1)将指定目录下的目录或文件进行打包。

    tar -czvf test.tar.gz  /home/test
    
    • 1

    由于指定了绝对路径/home/test, 所以压缩包内将目录也保存下来了
    在这里插入图片描述
    在这里插入图片描述
    (2)将目录 /home/test 打包成 test.tgz,同时使用 gzip 进行压缩。

    tar -czvf test.tgz /home/test
    
    • 1

    (3)将目录 /home/test 打包成 test.tbz2,同时使用 bzip2 进行压缩。

    tar –cjvf test.tgz2 /home/test
    
    • 1

    (4)向已存在的tar文件中追加文件

    tar -rvf test.tar newfile1 newfile2
    
    • 1

    4.2、解包

    (1)将压缩包 test.tar.gz还原为原目录

    tar -xzvf test.tar.gz
    
    • 1

    注意:执行该命令会把文件解压缩到当前目录,若tar.gz压缩包内包含了绝对路径,则会在当前目录下创建该绝对路径。例如:在当前目录下创建/home/test。 若不想再次创建该路径,可以在home的上一级目录下执行tar解压命令

    (2)将压缩包 test.tgz 还原为原目录,同时使用 gzip 进行解压缩。

    tar -xzvf test.tgz
    
    • 1

    (3)将 test.tgz 解包到指定目录,同时使用 gzip 进行解压缩。

    tar -xzvf test.tgz -C DIR
    
    • 1

    (4)将压缩包test.tbz2 还原为原目录,同时使用 bzip2 进行解压缩。

    tar -xjvf test.tbz2
    
    • 1

    4.3、查看

    (1)只查看档案的文件列表,不进行解包。

    tar -tzvf test.tar.gz
    
    • 1

    在这里插入图片描述

    五、总结

    .tar文件是一种仅打包不压缩的文件格式。
    但是有时为了减小文件的大小,.tar文件与压缩算法结合使用,例如经常使用的gzip和bzip2压缩算法。这样的文件通常被称为tar压缩包或者.tar.gz、.tar.bz2等。这些压缩包是.tar文件的压缩版本,以便减小文件的大小。解压缩这些压缩包会还原成原始的.tar文件。

  • 相关阅读:
    持续交付(三)Jenkinsfile语法使用介绍
    CMake中math的使用
    【luogu AT2382】A or...or B Problem(思维)
    【问题记录】配置mongodb副本集实现数据流实时获取
    在线负载离线负载与在线算法离线算法
    VR全景拍摄酒店,为用户消除“不透明度”
    NSS [NISACTF 2022]middlerce
    三菱FX3U PLC倒立摆控制
    只需3步,用华为云CodeArts快速搭建一个网上商城
    SpringCloud
  • 原文地址:https://blog.csdn.net/weixin_49114503/article/details/132982384