tar 使用说明

一:tar 的功能介绍

tar(tape archive) 是Linux或类 Unix 系统中用于打包和压缩文件的常用命令,使用tar可以将多个文件打包为一个文件,也可以将一个tar包进行解包。并且tar还支持使用特定的压缩算法将打包后的归档文件进行压缩,减少体积大小。

  • 打包:将几个文件整合成一个大文件,文件的整体大小不会像压缩一样被改变;

  • 压缩:通过某种算法来减小文件的大小;

二:tar 打包和压缩

1、打包一个或多个文件

  • 命令格式:tar [option] 打包后的文件名 需要将哪些文件进行打包

  • 常用选项:

    • -c:创建一个新的归档文件,这个选项必须有。
    • -f:指定归档文件的名称,这个选项必须且如果有多个选项,需要放在最后。
    • -v:显示详细的操作过程(可以不加这个选项)
    • -z:打包后,再通过 gzip 压缩打包后的文件,减少体积
    • -j:通过 bzip2 压缩归档文件
    • -J:通过 xz 压缩归档文件
    • -C:临时改变到指定目录后再进行打包或解包。

  • 归档文件命名
    • 为了方便区分,打包后的归档文件一般以.tar 来结尾
    • 如果归档包使用了gzip压缩,命名为xxx.tar.gz
    • 如果归档包使用bzip2压缩,命名为xxx.tar.b.bz2
    • 如果归档包使用了xz压缩算法,命名为 xxx.tar.xz

  • 注意事项
    • 如果归档包只是一个文件名(相对路径),则归档包默认存放在当前路径下,如果归档包是一个指定路径下的文件名,则归档包会存在在指定目录下。
    • 如果路径下存在同名文件,默认会将这个同名文件覆盖,造成数据丢失。
    • 需要进行打包的文件需要使用相对路径,否则会把完整的绝对路径包含在归档文件中。解压时,它会在目标系统上还原这个绝对路径,从根目录开始创建文件和目录结构;因为 tar 默认会保留指定路径的结构。所以可以用tar 的 -C 选项指定路径,然后再进行打包。
    • 多个参数写在一起时,f参数只能位于这些参数的最后面,并且f参数后面必须跟打包后的文件名;

例如: 将指定目录下的日志目录打包

tar -czf log.tar.gz -C ~/work/PythonWorker3 Log -C  ~/work/html/EHCommon/runtime log -C ~/work/html/OnlyDoor/runtime log2

例如: 将打包后的归档包存指定路径下

tar -czf /backup/job.tar.gz job  opscripts  DataBackUp

2、排除指定文件不打包

如果打包某个目录文件时,需要排除目录下的指定文件不进行打包,可以通过 --exclude 参数实现。


--exclude使用说明:

格式--exclude=需要排除的文件 (支持通配符)


说明:

  • 如果需要排除的是一个目录,目录名后面不能加 /

  • --exclude 参数的路径是在执行 tar 时相对于 -C 指定的目录来计算,如果没有使用 -C 参数,--exclude 的路径通常也是相对于当前工作目录的相对路径,而不是绝对路径;


例如: 排除/home/ubuntu/test目录下以sh结尾的文件

tar -czf test.tar.gz -C /home/ubuntu/ --exclude="test/*.sh" test

例如: 排除opscripts/image目录不进行打包

tar -czf opscripts.tar.gz --exclude="opscripts/image" opscripts

三:tar 解压归档包

1、解压某个 tar 包

命令格式tar [options] 需要解压的归档包名称


常用选项:

  • -f:指定需要解压的归档包名称
  • -x:表示是进行解压操作
  • -z:表示如果归档包使用gzip算法压缩了,就使用gzip进行解压
  • -j:表示如果归档表使用bzip2压缩了,就是用bizip2进行解压。
  • -J:表示如果归档表使用xe压缩了,就是用xz进行解压。
  • -C:临时改变到指定目录后再进行打包或解包。

使用说明:

  • 如果解压某个归档包的时候没有指定压缩算法,则tar会自动选择合适的压缩算法进行解压。
  • 默认是解压到当前目录下,使用 -C 选项,可以让tar执行的时候临时进入指定目录,从而实现解压到指定目录下。
  • 如果指定目录下存在同名文件,则会将现有的文件进行覆盖,导致数据丢失。

例如:解压到/var/www/html目录下

# 让`tar`执行的时候临时进入指定目录,从而实现解压到指定目录下
tar -xf file.tar.gz -C /var/www/html

2、解压文件覆盖说明

覆盖规则:

  • 普通文件:如果解压后的文件是普通文件,且路径下存在同名文件,默认就会将旧文件进行覆盖;

  • 目录文件:如果解压后的文件是目录文件,且路径下存在同名目录文件,则目录中的同名文件会被覆盖,不同名文件不会受到影响


预防方法:

  • 使用tar的 -k 选项时,如果路径下存在同名文件,则解压失败。

例如

tar -xfk file.tar.gz -C /var/www/html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小爪子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值