在工作中,涉及到文件传输,为了减少文件的体积和传输的时间,经常会对文件进行压缩,本文介绍了linux系统中常用的压缩和解压缩命令


一、tar命令

.tar:简单封装,被称为归档文件,只是简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装
.gz:压缩体积,常见为.tar.gzgzip格式压缩文件是使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
一般使用tar命令进行压缩文件,会结合以上两者

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

  • -c:创建的意思,表示创建压缩文件,用于压缩模式
  • -v:表示显示压缩、解压的过程,用于查看进度
  • -x解压模式
  • -f:表示要创建压缩的文件或要解压的文件,并且-f选项必须在所有选项中位置处于最后一个
  • -zgzip模式,使用该选项会极大减少压缩文件的体积,不使用-z就是普通的归档文件的作用,不会减少体积
  • -C:选择解压的目的地,用于解压的模式

1. 压缩

# 将a.txt b.txt c.txt 压缩到test.tar文件内,只是简单封装,没有减少体积
tar -cvf test.tar a.txt b.txt c.txt

在这里插入图片描述
压缩前三个文件的大小总共为11.6K,进行普通组装之后为20K,反而增加了。

# 将a.txt b.txt c.txt 压缩到test.tar.gz文件内,使用gzip模式进行压缩,会极大的减少test.tar的体积
tar -zcvf test.tar.gz a.txt b.txt c.txt

在这里插入图片描述
压缩前三个文件的大小总共为11.6K,进行gzip模式压缩之后之后为1.8K,对比简单封装,极大减少的压缩文件的体积。

在使用tar命令进行压缩的时候,-z选项如果使用,一般处于选项位的第一个;-f选项必须在选项的最后一个。

2. 解压

使用tar命令进行解压,和压缩是对应的,除此之外还可以使用-C指定解压路径

# 解压test.tar, 将文件解压到当前目录
tar -xvf test.tar

# 解压test.tar, 将文件解压到指定目录下
tar -xvf test.tar -C /home

# 以gzip模式解压test.tar.gz, 将文件解压到指定目录下
tar -zxvf test.tar.gz -C /home

在使用tar命令进行解压的时候,-z选项如果使用,一般处于选项位的第一个;-f选项必须在选项的最后一个;-C选项单独使用。


二、zip命令

zip命令进行压缩和解压缩,比较简单,压缩文件为zip压缩包

1. 压缩

语法:zip [-r] 参数1 参数2 ... 参数N

  • -r:被压缩的内容包含文件夹的时候,需要使用-r选项
# 将a.txt b.txt c.txt 压缩到test.zip文件内
zip test.zip a.txt b.txt c.txt

# 将test1文件夹、test2文件夹、a.txt压缩到test.zip文件内
zip -r test.zip test1 test2 a.txt

2. 解压

语法:unzip [-d] 参数

  • -d:表示指定要解压去的位置,和tar命令的-C选项作用一样
  • 参数:表示被解压的zip压缩包文件
# 将test.zip解压到当前目录
unzip test.zip

# 将test.zip解压到指定的文件夹内
unzip test.zip -d /home

三、文件加密压缩和密码解压

1. tar命令

使用tar命令进行加密压缩时需要和OpenSSL进行结合

1.1 加密压缩

语法:tar -zcvf - a.txt b.txt | openssl des3 -salt -k 123456 -out /root/test/test.tar.gz

  • -:该参数后跟的是被压缩的具体文件,*表示当前路径下所有文件
  • -k: 该参数后跟密码,本示例密码是123456
  • -out:该参数后为输出的压缩文件

在这里插入图片描述

使用gzip模式压缩当前路径下的a.txt b.txt文件到当前目录/root/test下,压缩文件名称为test.tar.gz, 压缩密码为123456

1.2 密码解压

语法:openssl des3 -d -k 123456 -salt -in /root/test/test.tar.gz | tar zxvf - -C /root/test1

  • -k:该参数后跟的是密码,示例中密码为123456
  • -in:该参数后跟的是压缩文件,示例中是/root/test/test.tar.gz
  • -:表示释放所有的文件
  • -C:表示解压的路径

在这里插入图片描述
使用tar命令解压加密文件/root/test/test.tar.gz/root/test1目录下,解压密码为123456

2. zip命令

2.1 加密压缩

语法:zip -rP 123456 /root/test/test.zip a.txt b.txt*

  • -rp:文件夹加密,示例中密码为123456

使用zip命令压缩当前路径下的a.txt b.txt文件到当前目录/root/test下,压缩文件名称为test.zip, 压缩密码为123456

2.2 密码解压

语法:unzip -uP 123456 /root/test/test.zip -d /root/test1

  • -uP:加压密码参数,示例密码为123456

使用unzip命令解压加密文件/root/test/test.zip/root/test1目录下,解压密码为123456

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐