• Linux基础命令之tar解压缩详解


      tar命令可以为 Linux 的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
      首先要弄清两个概念:

    • 打包: 将一大堆文件或目录变成一个总的文件。
    • 压缩: 将一个大的文件通过一些压缩算法变成一个小文件。

      为什么要区分这两个概念呢?这源于 Linux 中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
      Linux 下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

    命令格式

    tar [-cxtzjvfpPN] File or directory
    
    • 1

    命令功能

    • 将多个文件或目录打包在一起,也可用来压缩和解压文件(tar本身不具有压缩、解压功能,他是通过调用 gzip 或 zip 实现的)。

    命令参数

    • -A:新增压缩文件到已存在的压缩;
    • -B:设置区块大小;
    • -c:建立新的压缩文件;
    • -d:记录文件的差别;
    • -r:添加文件到已经压缩的文件;
    • -u:添加改变了和现有的文件到已经存在的压缩文件;
    • -x:解开一个压缩文件;
    • -t:显示压缩文件的内容;
    • -z:支持 gzip 解压文件;
    • -j:支持 bzip2 解压文件;
    • -Z:支持 compress 解压文件;
    • -v:显示详细 tar 执行过程;
    • -l:文件系统边界设置;
    • -k:保留原有文件不覆盖;
    • -m:保留文件不被覆盖;
    • -W:确认压缩文件的正确性;
    • -f:指定压缩文件;
    • -p:使用原文件的原来属性(属性不会依据使用者而变);
    • -P:可以使用绝对路径来压缩;
    • -b:设置区块数目;
    • -C:切换到指定目录;
    • -N:打包比指定日期新的文件或文件夹;
    • --help:显示帮助信息;
    • --version:显示版本信息;
    • --exclude:压缩过程中不打包指定文件或文件夹;
    • 注:
      • 在一条命令中,-c | -x | -t 仅能存在一个;
      • -f之后要立即接档案名,例如使用tar -zcvfP tfile sfile就是错误的写法,正确的写法是tar -zcvPf tfile sfile

    使用范例

    • 打包文件
      tar -cvf log.tar test.txt		# 仅打包,不压缩
      tar -zcvf log.tar.gz test.txt	# 打包后,以 gzip 压缩
      tar -jcvf log.tar.bz2 test.txt	# 打包后,以 bzip2 压缩 
      # 在参数-f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识;如果加-z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar包; 如果加-j参数,则以.tar.bz2来作为tar包名
      
      • 1
      • 2
      • 3
      • 4
    • 打包多个文件或文件夹
      tar -zcvf log.tar.gz 1.txt test/	# 多个文件或文件夹之间用空格分割
      
      • 1
    • 打包所有 .jpg 文件
      tar -zcvf file.tar.gz *.jpg
      
      • 1
    • 解包文件
      tar -xvf log.tar
      tar -zxvf log.tar.gz
      tar -jxvf log.tar.bz2
      
      • 1
      • 2
      • 3
    • 解压压缩包到指定文件夹下
      tar -zxvf log.tar.gz -C /data
      
      • 1
    • 查看 tar 包内有哪些文件
      [root@localhost test]# tar -ztvf log.tar.gz
      -rw-r--r-- root/root         0 2022-07-31 01:06 test.txt
      
      • 1
      • 2
    • 解压 tar 包中的部分文件
      [root@localhost test]# tar -ztvf 1.tar.gz 
      drwxr-xr-x root/root         0 2022-07-31 01:19 test/
      -rw-r--r-- root/root         0 2022-07-31 01:17 1.txt
      [root@localhost test]# tar -zxvf 1.tar.gz 1.txt
      1.txt
      # 可以透过tar -ztvf来查阅tar包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 打包文件并保留其权限
      tar -zcvpf log.tar.gz 1.txt
      # 在想要保留原本文件的属性时,-p很重要
      
      • 1
      • 2
    • 打包文件夹中比指定日期新的文件
      tar -N "2022/07/30" -zcvf 1.tar.gz data/
      
      • 1
    • 排除指定文件或文件夹进行打包
      tar --exclude data/1.txt -zcvf log.tar.gz data/* /etc
      
      • 1

    参考文献

      【1】https://www.cnblogs.com/sui776265233/p/10185402.html
      【2】https://www.jianshu.com/p/e4249f0e76e7
      【3】https://blog.csdn.net/zjwlgr/article/details/122543552
      【4】https://www.bilibili.com/read/cv14025026

  • 相关阅读:
    数据结构——树状数组
    区块链基础:编写一个最简单的合约,修改和查询
    MyBatis 进阶
    《低代码指南》——维格云小程序开发简介
    应用统计-点估计法(1.矩估计 2.极大似然估计)
    【Feign】 基于 Feign 远程调用、 自定义配置、性能优化、实现 Feign 最佳实践
    猿创征文|docker本地私人仓库快速搭建后的安全优化(用户鉴权和简易的web界面开启)
    漏刻有时数据可视化大屏(16)数据指标KPI和柱图折线图混排
    GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤
    Spring 中Bean的作用域有哪些?
  • 原文地址:https://blog.csdn.net/weixin_44758876/article/details/126079922