tar命令——压缩与解压

介绍

tar全称是tape archive,初衷是将多个文件写入磁带。首先,需要分清两个概念——打包与压缩。打包:将多个文件汇总成一个文件。压缩:将一个大文件通过压缩算法变成一个小文件。而tar命令执行的打包流程,真正执行压缩的是使用的压缩算法,比如gzip、bzip2、xz。tar命令在Linux社区内十分受欢迎,其中一个原因就是灵活性强,可以根据需要选择不同的压缩算法。

常用参数

  1. 打包过程
  • -c--create。创建档案文件(可以理解为压缩包名)
  • -x--extract。解压(提取)文件
  • -f--file。指定档案文件,告诉tar命令,后面是文件名
  • -t--list。列出档案文件的内容
  • -v--verbose。显示处理文件的详细信息

当多个参数简写在一起的时候,可以只用一个-。在实际使用中,最常使用的参数就是-cvf,即创建压缩包,并以显示详细处理信息。

  1. 压缩过程
  • gzip:参数-z--gzip;文件拓展名:.tar.gz.tgz

  • bzip2-j--bzip2.tar.bz2

  • xz-J--xz.tar.xz

压缩算法之间的区别:

压缩算法 gzip bzip2 xz
参数 -z -j -J
文件拓展名 .tar.gz .tar.bz2 .tar.xz
压缩速度
解压速度
压缩比
资源占用
适用场景 快速压缩/解压 高压缩比 最大压缩比

在日常使用中,使用gzip压缩就可以了,虽然压缩比低,但是它十分的快。并且如果被压缩的文件本身就比较小,使用xz压缩的结果也不会少太多。因此,日常使用建议gzip,既想要速度也想要压缩比建议bzip2,超大文件建议xz

示例

流程相似,只需更换压缩算法的参数。

# 压缩。压缩包名 + 被压缩的目录或者文件路径
tar -czvf archive_name.tar.gz path_to_compress
# 解压。用什么压缩算法压缩的,就用什么压缩算法解压
tar -xzvf archive_name.tar.gz # 解压到当前目录
tar -xzvf archive_name.tar.gz -C path_to_extract # 解压至指定目录。 -C (change directory)指出目录地址
posted @ 2024-05-21 19:33  顾子郤  阅读(210)  评论(0编辑  收藏  举报