Linux压缩与解压

RAR

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压缩

# 将a目录下的所有jpg后缀的文件打包到jpg.rar
rar a jpg.rar *.jpg

rar解压

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

# 用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解压

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

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

查看解压包中有哪些文件

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述


检查文件是否损坏

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

在这里插入图片描述


解压zip到指定目录

# 把文件解压到当前目录下
unzip test.zip

# 解压
unzip liangshuang.zip

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

只解压指定文件

# 只解压指定文件
## "指定要解压的文件"
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/

tar打包工具

tar常用参数:

  • -z 表示使用gzip压缩
  • -j 表示使用bzip2压缩
  • -c 表示打包文件
  • -v 表示显示详细信息
  • -f 指定文件名称,必须放到所有选项后面
  • -x 表示解压缩
  • -C 解压到指定目录

在这里插入图片描述

安装tar

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

tar只打包不压缩

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

tar.gz压缩

  • 压缩打包命令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

tar.gz压缩过程

## tar.gz压缩原理
# 将目录里所有jpg文件打包成jpg.tar
tar -cvf jpg.tar *.jpg

# gzip将jpg.tar压缩后,文件变成了jpg.tar.gz
gzip jpg.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.bz2压缩

# centos安装bzip2
yum install bzip2 -y

#将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -jcvf jpg.tar.bz2 *.jpg 

tar.z压缩

#将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
tar -Zcvf jpg.tar.Z *.jpg 

tra.xz压缩

安装XZ压缩工具

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

# tar.xz压缩
tar Jcvf 压缩后的文件.tra.xz 要压缩的文件

tar解压

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

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

    • x 代表解压缩

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

    • k 保留原有文件不覆盖

    • -C 解压到指定目录

      • tar -vxf 文件名.tar.gz -C 指定目录
# 解压tar包
tar -xvf file.tar

# 解压tar.gz:
tar xvf 文件名.tar.gz
tar xvf FileName.tar.gz

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

# -k 保留原有文件不覆盖
# -C 解压到指定目录 
tar -xvfk bbs.tar.gz -C /zzz/bbs

gz解压

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

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

# -k 解压后保留原gz文件
gzip -dk file.gz

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

解压到指定目录

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

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

解压文件不包含目录

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

# 增加当前文件夹及其子文件夹下的所有的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

总结

*.tar.*类型压缩包,统一用 tar -xvf 解压

*.gzgzip -d或者gunzip 解压

*.bz2bzip2 -d或者用bunzip2 解压

*.Zuncompress 解压

*.rarunrar 解压

*.zipunzip 解压

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

识途老码

赞赏是第一生产力

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

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

打赏作者

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

抵扣说明:

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

余额充值