第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > linux常用压缩-解压-打包命令

linux常用压缩-解压-打包命令

时间:2021-04-06 13:44:36

相关推荐

linux常用压缩-解压-打包命令

文章目录

1 常见的压缩文件扩展名2 gzip, zcat/zmore/zless/zgrep3 bzip2, bzcat/bzmore/bzless/bzgrep4 xz, xzcat/xzmore/xzless/xzgrep5 tar6 zip、rar、7z7 多线程压缩

1 常见的压缩文件扩展名

*.Z compress 程序压缩的文件;*.zip zip 程序压缩的文件;*.gz gzip 程序压缩的文件;*.bz2 bzip2 程序压缩的文件;*.xz xz 程序压缩的文件;*.tar tar 程序打包的数据,并没有压缩过;*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩

Linux上常见的压缩指令就是compress、gzip、bzip2、xz,为了支持 windows 常见的 zip,Linux 也加入了 zip 指令。其中compress出现最早,现已不常用。gzip、bzip2、xz 按时间早晚先后出现,并且压缩比一个比一个高

起初,tar 仅提供单纯的“打包”功能,即将很多文件打包为一个文件。后来,GNU 将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!

2 gzip, zcat/zmore/zless/zgrep

gzip 可以说是应用度最广的压缩指令了!目前 gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件。gzip 所创建的压缩文件后缀名为 *.gz。

cat/more/less 可以使用不同的方式来读取纯文本文件,zcat/zmore/zless 则可以对应于 cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件! 由于 gzip 这个压缩指令主要想 要用来取代 compress 的,所以不但 compress 的压缩文件可以使用 gzip 来解开,同时 zcat 这个指令可以同时读取 compress 与 gzip 的压缩文件呦!

用法:gzip [-cdtv#] 文件名选项与参数:-c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;-d :解压缩的参数;-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;-v :可以显示出原文件/压缩文件的压缩比等信息;-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6

fy@fy-vm ~/Desktop> mkdir testfy@fy-vm ~/Desktop> mv services sources.list test/fy@fy-vm ~/Desktop> cd test/fy@fy-vm ~/D/test> lsservices sources.listfy@fy-vm ~/D/test> # gzip压缩一个文件,默认不保留原文件fy@fy-vm ~/D/test> gzip services fy@fy-vm ~/D/test> lsservices.gz sources.listfy@fy-vm ~/D/test> # gzip解压一个文件,默认不保留原文件fy@fy-vm ~/D/test> gzip -d services.gz # gunzip services.gzfy@fy-vm ~/D/test> lsservices sources.listfy@fy-vm ~/D/test> # gzip压缩一个文件,保留原文件fy@fy-vm ~/D/test> gzip -c sources.list > sources.list.gzfy@fy-vm ~/D/test> lsservices sources.list sources.list.gzfy@fy-vm ~/D/test> # 同时压缩多个文件fy@fy-vm ~/D/test> gzip -c services sources.list > ss.gzfy@fy-vm ~/D/test> gzip -cv9 services > services.gzservices: 59.1%fy@fy-vm ~/D/test> lsservices services.gz sources.listfy@fy-vm ~/D/test> gzip -v8 sources.list sources.list: 69.7% -- replaced with sources.list.gzfy@fy-vm ~/D/test> lsservices services.gz sources.list.gzfy@fy-vm ~/D/test> # 查看压缩文件内容fy@fy-vm ~/D/test> zcat sources.list.gz# deb cdrom:[Ubuntu 20.04.2.0 LTS _Focal Fossa_ - Release amd64 (0209.1)]/ focal main restricted# See /community/UpgradeNotes for how to upgrade to# newer versions of the distribution.deb /ubuntu/ focal main restricted...

3 bzip2, bzcat/bzmore/bzless/bzgrep

用法类似于 gzip

用法:bzip2 [-cdkzv#] 文件名选项与参数:-c :将压缩的过程产生的数据输出到屏幕上!-d :解压缩的参数-k :保留原始文件,而不会删除原始的文件喔!-z :压缩的参数 (默认值,可以不加)-v :可以显示出原文件/压缩文件的压缩比等信息;-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

fy@fy-vm ~/D/test> lsservices sources.list# 压缩fy@fy-vm ~/D/test> bzip2 sources.list fy@fy-vm ~/D/test> bzip2 -cv services > services.bz2services: 2.572:1, 3.111 bits/byte, 61.12% saved, 14464 in, 5624 out.fy@fy-vm ~/D/test> lsservices services.bz2 sources.list.bz2# 解压fy@fy-vm ~/D/test> bzip2 -d sources.list.bz2 fy@fy-vm ~/D/test> lsservices services.bz2 sources.listfy@fy-vm ~/D/test> bzcat sources.list.bz2

4 xz, xzcat/xzmore/xzless/xzgrep

用法类似于 gzip

用法:xz [-dtlkc#] 文件名选项与参数:-d :就是解压缩啊!-t :测试压缩文件的完整性,看有没有错误-l :列出压缩文件的相关信息-k :保留原本的文件不删除~-c :同样的,就是将数据由屏幕上输出的意思!-# :同样的,也有较佳的压缩比的意思!

fy@fy-vm ~/D/test> lsservices sources.list# 压缩文件fy@fy-vm ~/D/test> xz sources.list fy@fy-vm ~/D/test> xz -k services fy@fy-vm ~/D/test> lsservices services.xz sources.list.xz# 解压文件fy@fy-vm ~/D/test> rm services.xzfy@fy-vm ~/D/test> xz -d sources.list.xz fy@fy-vm ~/D/test> lsservices sources.list# 压缩文件fy@fy-vm ~/D/test> xz -c services > sv.xzfy@fy-vm ~/D/test> lsservices sources.list.xz sv.xzfy@fy-vm ~/D/test> xz -l sv.xz 流块压缩大小解压大小 比例 校验 文件名1 15,640 B14.1 KiB 0.390 CRC64 sv.xz# 解压文件fy@fy-vm ~/D/test> du -h services sv.xz 16Kservices8.0Ksv.xzfy@fy-vm ~/D/test> xz -d sv.xzfy@fy-vm ~/D/test> lsservices sources.list.xz sv

5 tar

在压缩文件的时候,往往需要压缩多个文件、文件夹或是多个文件夹。这时候 tar 就派上用场了,tar 可以将多个文件或文件夹打包成一个文件,然后再用相应的压缩工具对文件进行压缩。

用法:打包并压缩文件:tar [-z or -j or -J] [-cv] [-f 待创建的新文件名] filename...查看文件:tar [-z or -j or -J] [-tv] [-f 已有的tar文件名]解压文件:tar [-z or -j or -J] [-xv] [-f 已有的tar文件名] [-C 要解压到的目标目录]注:选项可连写,但由于“ -f filename ”是紧接在一起的,所以 -f 必须位于所有选项之后。可 tar -zcvf a.tar.gz a/,不可 tar -zcfv a.tar.gz a/ ...选项与参数:-c:创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)-t:察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了;-x:解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开特别留意的是,-c,-t,-x不可同时出现在一串命令行中。三选一-z:通过gzip 的支持进行压缩/解压缩:此时文件名最好为*.tar.gz-j:通过bzip2的支持进行压缩/解压缩:此时文件名最好为*.tar.bz2-J:通过xz 的支持进行压缩/解压缩:此时文件名最好为*.tar.xz特别留意,-z,j,-J不可以同时出现在一串命令行中。三选一-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来!-f filename:-f后面要立刻接要被处理的文件名!建议-f单独写一个选项啰!(比较不会忘记)。必选项-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。-p(小写):保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件-P(大写):保留绝对路径,亦即允许备份数据中含有根目录存在之意;--exclude=FILE:在压缩的过程中,不要将FILE打包!

# 1 压缩文件# 1.1 gzip 格式tar zcvf filename.tar.gz dir1 dir2 ...tar cf - dir1 dir2 ... | gzip > filename.tar.gz# 1.2 bzip2 格式tar jcvf filename.tar.bz2 dir1 dir2 ...tar cf - dir1 dir2 ... | bzip2 > filename.tar.bz2# 1.2 xz 格式tar Jcvf filename.tar.xz dir1 dir2 ...tar cf - dir1 dir2 ... | xz > filename.tar.xz# 2 解压缩文件# 2.1 gzip 格式tar zxf filename.tar.gztar zxf filename.tar.gz -C /path/to/extract# 2.2 bzip2 格式tar jxf filename.tar.bz2tar jxf filename.tar.bz2 -C /path/to/extract# 2.2 xz 格式tar Jxf filename.tar.xztar Jxf filename.tar.xz -C /path/to/extract

6 zip、rar、7z

linux zip命令

Linux 下解压 .zip 和 .rar 文件

1、zip

# 将文件夹 ~/Desktop/test 压缩为 ./test.zipzip a -r test.zip ~/Desktop/test# 解压 .zip 到指定文件夹,-d 参数。解压的同时创建目录 exasudo unzip exa-linux-x86_64-v0.10.1.zip -d /opt/exa

2、rar

# 将文件夹 ~/Desktop/test 压缩为 ./test.rarrar a -r test.rar ~/Desktop/test# 解压到当前目录rar x test.rar# 解压到指定目录 ~/Desktop/demo 中rar x test.rar ~/Desktop/demo

3、7z

# 将文件夹 ~/Desktop/test 压缩为 ./test.7z7z a -r test.7z ~/Desktop/test7z a -r test.zip ~/Desktop/test# -o后面不要加空格。将 ./test.7z 解压到文件夹 $HOME/Desktop/test1 中7z x -o$HOME/Desktop/test1 test.7z7z x -o$HOME/Desktop/test1 test.zip

7 多线程压缩

注:xz 本身支持并行压缩,但默认不启用,使用 -T 选项开启

tar cf - pycharm_setting/ | xz -T $(nproc) > pycharm_setting.tar.xz

下面以 pigz 为例说明用法:

1、安装

sudo apt install pigzsudo yum install pigz

2、用法

pigz只能压缩单个文件,若要压缩文件夹,需结合 tar 命令

# -0 ~ -9, -11 压缩等级,数字越大压缩率越高、压缩速度越慢。-11 设置最高压缩率,速度最慢# -k 压缩后不删除原文件# -p 压缩时使用的线程数,默认使用所有cpu核心# -d 解压缩# 1、压缩文件夹# tar -cf - dir1 dir2 ... dirn | pigz > file.tgztar -cf - pycharm_setting/ | pigz -9 -p $(nproc) -k > pycharm.tgz # tgz 等价于 tar.gz# 2、解压缩文件夹tar -zxf pycharm.tgz# 3、压缩单个文件pigz -k ideaIU-.1.2.exe# 4、解压单个文件pigz -d ideaIU-.1.2.exe.gz

参考书籍:鸟哥的linux私房菜

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。