Linux压缩与解压

tra.xz压缩—最常用

tar.xz:采用LZMA/XZ算法压缩率最高,但压缩/解压速度最慢;

Ubuntu需要安装XZ压缩工具

# ubuntu安装XZ压缩工具
apt-get install xz-utils

# Centos7自带xz,不用压缩
  • tar.xz压缩示例:
# tar.xz压缩
## -J 表示调用xz压缩工具
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar Jcvf ${压缩后的文件}.tra.xz 要压缩的文件

tar.xz解压

# 解压到当前目录
tar xvf filename.tra.xz

## -C 解压到指定目录
tar xvf filename.tra.xz -C /app/

tar压缩和解压工具

tar是一个Linux打包工具,和三方压缩组件配合,能非常方便的打包压缩文件和目录.

# Centos8最小化安装的系统没有tar包
yum install tar -y

tar只查看不解压

# 只查看不解压
## -t 列出归档内容
## -v 查看详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar -tvf extundelete-0.2.4.tar.bz2

tar解压

.tar.*类型压缩包,统一tar -xvf 解压
可以解压tar.gz,tar.bz2,tar.xz,tar.z等格式

  • 解压tar -vxf 文件名.tar.gz
    • v 代表解压的时候打印出所有的文件

    • x 代表解压缩

    • f 指定文件,必须放在最后

    • k 保留原有文件不覆盖

    • -C 解压到指定目录

      • tar -vxf 文件名.tar.gz -C 指定目录
# 解压tar包
## -x 解压缩
## -v 显示详情
## -f 指定要解压的文件
tar xvf file.tar
tar xvf ${FileName}.tar.gz

## -C 解压到指定目录 
tar -xvf bbs.tar.gz -C /zzz/bbs

## -k 保留原有文件不覆盖
tar -xvfk bbs.tar.gz -C /zzz/bbs

tar只打包不压缩

# -cvf 表示只打包不使用压缩
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar -cvf FileName.tar DirName

tar打包并压缩

查看tar三方压缩组件

[rocky root ~]# tar --help|grep z
  -i, --ignore-zeros         忽略归档中的零字节块(即文件结尾)
      --record-size=NUMBER   每个记录的字节数 NUMBER,乘以 512
  -j, --bzip2                通过 bzip2 过滤归档
  -J, --xz                   通过 xz 过滤归档
      --lzip                 通过 lzip 过滤归档
      --lzma                 通过 xz --format=lzma 过滤归档
      --lzop                 通过 lzop 过滤归档
  -z, --gzip, --gunzip, --ungzip   通过 gzip 过滤归档

tar.gz压缩

tar.gz: 采用Gzip算法,压缩率最低,但压缩/解压速度最快‌

  • 压缩打包命令tar zcvf
    • z 代表调用gzip压缩
    • c 代表压缩
    • v 显式过程
    • f 指定目录
  • 压缩打包指定目录:
    - tar zcvf 压缩后的文件名.tar.gz 目录名
  • 压缩打包指定文件
    • 例如: tar -zcvf hello.tar.gz agileone.sql
    • 注意:生成的文件后缀名必须是.tar.gz
      • tar -zcvf 19.tar.gz hello
# 压缩tar.gz
## -z 使用`gzip`压缩
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar zcvf 压缩后文件名.tar.gz 目标名
tar zcvf FileName.tar.gz DirName

gz压缩和解压

参考: https://www.linuxcool.com/gzip


gzip压缩

gzip不能直接压缩目录,只能压缩单个文件

# gzip压缩文件
gzip file01

gip压缩文件后会生成${文件名.gz}文件,并自动将源文件删除.
在这里插入图片描述

## -v 显示过程
## -9 压缩级别
gzip -v9 file01

在这里插入图片描述


gzip解压
# -d 解压
## gzip解压后会删除原有的.gz文件
gzip -d file.gz

在这里插入图片描述

## -d 解压
## -v 显示进度
gzip -dv file01.gz

在这里插入图片描述


tar.gz压缩过程
  1. 先使用tar将文件打包
## tar.gz压缩原理
# 将目录里所有jpg文件打包成jpg.tar
tar -cvf jpg.tar *.jpg
  1. 再使用gzip将tar包压缩
# gzip将jpg.tar压缩后,文件变成了jpg.tar.gz
gzip jpg.tar

tar.bz2压缩

tar.bz2: 采用BZip2算法,压缩率较xz次之,速度比xz快但比gzip慢‌.

# centos安装bzip2
yum install bzip2 -y
  • tar.bz2压缩示例:
# 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
## -j 表示调用bz2压缩工具
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar -jcvf jpg.tar.bz2 *.jpg 

tar.z压缩----已淘汰

tar.z: 属于Unix旧式compress压缩格式,压缩率最差,目前基本被淘汰

#将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
## -Z 表示调用Unix旧式compress压缩工具
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
tar -Zcvf jpg.tar.Z *.jpg 

RAR

RAR是商业软件,需要编译安装.
源码下载: https://www.rarlab.com/download.htm
Centos7glibc版本为2.17只能安装rar5.5版本

# 下载RAR源码包
wget -P /usr/local/src -c https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz

在这里插入图片描述

cd /usr/local/src/
# 解压源码
tar xvf rarlinux-x64-5.5.0.tar.gz

cd /usr/local/src/rar
# 编译安装
make && make install
# 查看rar命令是否可用
which rar

在这里插入图片描述

# 查看rar版本
rar -?

在这里插入图片描述


rar压缩

# 将a目录下的所有jpg后缀的文件打包到jpg.rar
## -a 添加到压缩文件中
rar a 压缩包名称.rar *.jpg

rar解压

参考链接: https://blog.csdn.net/iot_song/article/details/80169662


安装unrar解压工具

  • Linux安装rar
# Debian安装unrar
apt install unrar -y

# RHEL安装unrar
yum install -y unrar

  • macOS安装rar
# macOS安装rar
brew install rar

# 消除app的隔离属性,不然无法运行
sudo xattr -r -d com.apple.quarantine /opt/homebrew/bin/unrar

在这里插入图片描述


rar解压示例

# 用unrar命令解压rar后缀的文件
## e 解压文件到当前目录
unrar e test.rar  

## x 解压到名为test的目录
unrar x test.rar 

## l 查看rar中的文件
unrar l test.rar  

## v 显示详细
unrar v test.rar  

## t 测试是否可以成功解压
unrar t test.rar 

ZIP压缩和解压

# Ubuntu安装unzip
apt install -y unzip

# Centos安装zip和unzip
yum install -y zip unzip

# macOS安装unzip
brew install unzip	

zip压缩

# 将当前目录下的所有jpg文件打包到jpg.zip
## zip 压缩后的文件名.zip 要压缩的文件
zip jpg.zip *.jpg

# 压缩指定文件
zip /opt/test.zip test_file

zip递归压缩(子目录也一起压缩)

zip压缩目录的时候,默认不会把子目录中的文件放进压缩包

# -r 递归压缩
zip -r test.zip 目录名

删除zip压缩包内的指定文件

删除jar包内的指定文件

# zip -d 要修改的jar包 jar包内要被删除的文件路径
zip -d test.jar  BOOT-INF/lib/test-ui-2.8.0.jar

向zip压缩包中添加文件

# -u 向zip压缩包中添加文件
zip -u 压缩包名.zip 要添加的文件

# 查zip压缩包内的文件内容
unzip -l 压缩包名.zip

在这里插入图片描述
在zip压缩包中创建目录

# 在压缩包里会创建/var/目录
zip -u test.zip /var/nihao.txt

zip解压

https://wangchujiang.com/linux-command/c/unzip.html
https://blog.csdn.net/qq_35399846/article/details/70168002
https://blog.csdn.net/IOT_SONG/article/details/80169662

# 解压zip压缩包
unzip test.zip

tar也可以解压zip

# 实测也可以通过tar解压zip
## -x 解压缩
## v 显示解压进度
## f 指定操作文件
tar xvf test.zip

解压zip到指定目录

# 解压zip到指定目录
##  -d 解压到指定路径
unzip ko.zip -d /opt

查看解压包中有哪些文件

# 只看一下zip压缩包中包含哪些文件,不进行解压缩
## -l:显示压缩文件内所包含的文件
unzip -l test.zip

在这里插入图片描述

# 只看一下zip压缩包中包含哪些文件,不进行解压缩
## -Z:unzip-Z等于执行zipinfo指令。
unzip -Z test.zip

在这里插入图片描述

## -v 查看显示的文件列表还包含压缩比率
unzip -v test.zip

在这里插入图片描述


检查文件是否损坏

# -t 检查zip文件是否损坏
unzip -t test.zip

在这里插入图片描述


只解压指定文件

# 只解压指定文件
## "指定要解压的文件"
unzip test.zip "test.jpg"

在这里插入图片描述


解压不覆盖已有文件

# -n 解压时不覆盖已经存在的文件
unzip -n test.zip

# 解压到指定目录并不覆盖已存在的文件
## -n 解压时不覆盖已经存在的文件
## -d 解压到指定目录
unzip -n -d /temp test.zip

解压并覆盖

## -o:不必先询问用户,unzip执行后覆盖原有的文件
## -d 解压到指定目录
unzip -o test.zip -d /tmp/

7z解压

参考: https://blog.csdn.net/rookie23rook/article/details/112508720

  • a : 将文件添加到存档
  • b : 基准
  • d : 从存档中删除文件
  • e : 从存档中提取文件(不使用目录名)
  • h : 计算文件的哈希值
  • i : 显示有关支持格式的信息
  • l : 列出存档内容
  • rn : 重命名存档中的文件
  • t : 测试档案的完整性
  • u : 更新文件以存档
  • x : 提取具有完整路径的文件
# Ubuntu
apt intall p7zip-full p7zip-rar -y

# Centos
yum -y install p7zip

# 解压命令
7za x OneAPM.7z

查看7z压缩包中的文件列表

# l 列出文件内容
7za l archive.7z

解压7z包到指定目录

https://www.jianshu.com/p/8f63182277c3

# 解压到指定目录
## x : 提取具有完整路径的文件
## -o后面没有空格
7za x -o指定的目录 file.7z

解压指定7z文件

参考: https://blog.csdn.net/lionzl/article/details/8655815

# 解压所有以2022.png结尾的文件到/tmp/目录
## x : 提取具有完整路径的文件
## -o没有空格,解压到指定路径
## -r[-|0] :递归子目录
### 7za x 压缩包.7z -o指定的解压路径 *文件名或类型 -r
7za x 压缩包.7z -o./tmp/  *2022.png -r

解压7z文件不包含目录

x参数会创建一个与压缩包同名的目录;
e参数不会创建与压缩包同名的目录

# 解压指定文件: 
## e :从存档中提取文件(不使用目录名)
7za e archive.7z spec_file

7z解压加密文件

# 解压加密文件
## x : 提取具有完整路径的文件
## -p{Password} : 指定解压密码
7za x -p密码 filename.7z

7z压缩并加密

# 压缩并加密
## a : 将文件添加到存档
7za a filename.7z sourcefilepath

# 向压缩包中添加文件
## a : 将文件添加到存档
7za a archive.7z 文件1.txt 文件2.txt

## -r 增加当前文件夹及其子文件夹下的所有的txt文件到Files.7z中
7z a Files.7z *.txt -r

lz4压缩工具

https://www.cnblogs.com/kevingrace/p/10271581.html

参数
-1: 快速压缩(默认)
-9: 高压缩
-d: 解压缩(默认为.lz4扩展名)
-z: 强制压缩
-f: 覆盖输出而不提示
-k: 保留源文件(默认)
–rm: 成功地解除/压缩后删除源文件
-h/-h: 显示帮助/长帮助和退出

高级参数
-v: 显示版本号并退出
-v: 详细模式
-q: 取消警告;指定两次也可以取消错误
-c: 强制写入标准输出,即使它是控制台
-t: 测试压缩文件完整性
-m: 多个输入文件(表示自动输出文件名)
-r: 在目录上递归操作(也设置为-m)
-l: 使用旧格式压缩(Linux内核压缩)


安装lz4

# 安装lz4压缩支持
dnf install -y lz4 lz4-devel

# 查看lz4是否安装
which lz4

压缩为lz4

# 压缩为lz4
## -1:  快速压缩(默认)
lz4 test
lz4 -1 test

# 高压缩
## -9:  高压缩
lz4 -9 test

## 压缩成功后,将源文件删除 (--rm参数)
lz4 --rm test

## -z:  强制压缩

解压lz4

# 解压lz4文件
## -d:  解压缩
lz4 -d xx-md5-xxxxyyyy.iso.lz4

Linux文件压缩和解压–总结

*.tar.*类型压缩包,统一用 tar -xvf 解压
*.gzgzip -d或者gunzip 解压
*.bz2bzip2 -d或者用bunzip2 解压
*.Zuncompress 解压
*.rarunrar 解压
*.zipunzip 解压

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

教Linux的李老师

赞赏是第一生产力

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

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

打赏作者

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

抵扣说明:

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

余额充值