文章目录

  • 1 常见的压缩文件扩展名
  • 2 gzip, zcat/zmore/zless/zgrep
  • 3 bzip2, bzcat/bzmore/bzless/bzgrep
  • 4 xz, xzcat/xzmore/xzless/xzgrep
  • 5 tar
  • 6 zip、rar、7z
  • 7 多线程压缩

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 test
fy@fy-vm ~/Desktop> mv services sources.list test/
fy@fy-vm ~/Desktop> cd test/
fy@fy-vm ~/D/test> ls
services  sources.listfy@fy-vm ~/D/test> # gzip压缩一个文件,默认不保留原文件
fy@fy-vm ~/D/test> gzip services
fy@fy-vm ~/D/test> ls
services.gz  sources.list
fy@fy-vm ~/D/test> # gzip解压一个文件,默认不保留原文件
fy@fy-vm ~/D/test> gzip -d services.gz # gunzip services.gz
fy@fy-vm ~/D/test> ls
services  sources.list
fy@fy-vm ~/D/test> # gzip压缩一个文件,保留原文件
fy@fy-vm ~/D/test> gzip -c sources.list > sources.list.gz
fy@fy-vm ~/D/test> ls
services  sources.list  sources.list.gz
fy@fy-vm ~/D/test> # 同时压缩多个文件
fy@fy-vm ~/D/test> gzip -c services sources.list > ss.gzfy@fy-vm ~/D/test> gzip -cv9 services > services.gz
services:    59.1%
fy@fy-vm ~/D/test> ls
services  services.gz  sources.list
fy@fy-vm ~/D/test> gzip -v8 sources.list
sources.list:    69.7% -- replaced with sources.list.gz
fy@fy-vm ~/D/test> ls
services  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 (20210209.1)]/ focal main restricted# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.aliyun.com/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> ls
services  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> ls
services  services.bz2  sources.list.bz2# 解压
fy@fy-vm ~/D/test> bzip2 -d sources.list.bz2
fy@fy-vm ~/D/test> ls
services  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> ls
services  sources.list# 压缩文件
fy@fy-vm ~/D/test> xz sources.list
fy@fy-vm ~/D/test> xz -k services
fy@fy-vm ~/D/test> ls
services  services.xz  sources.list.xz# 解压文件
fy@fy-vm ~/D/test> rm services.xz
fy@fy-vm ~/D/test> xz -d sources.list.xz
fy@fy-vm ~/D/test> ls
services  sources.list# 压缩文件
fy@fy-vm ~/D/test> xz -c services > sv.xz
fy@fy-vm ~/D/test> ls
services  sources.list.xz  sv.xz
fy@fy-vm ~/D/test> xz -l sv.xz
流      块     压缩大小     解压大小   比例   校验    文件名
1       1     5,640 B     14.1 KiB  0.390  CRC64  sv.xz# 解压文件
fy@fy-vm ~/D/test> du -h services sv.xz
16K services
8.0K    sv.xzfy@fy-vm ~/D/test> xz -d sv.xz
fy@fy-vm ~/D/test> ls
services  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.gz
tar zxf filename.tar.gz -C /path/to/extract# 2.2 bzip2 格式
tar jxf filename.tar.bz2
tar jxf filename.tar.bz2 -C /path/to/extract# 2.2 xz 格式
tar Jxf filename.tar.xz
tar Jxf filename.tar.xz -C /path/to/extract

6 zip、rar、7z

linux zip命令

Linux 下解压 .zip 和 .rar 文件

1、zip

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

2、rar

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

3、7z

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

7 多线程压缩

压缩工具 并行压缩
gzip pigz
bzip2 pbzip2
xz xz -T

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

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

下面以 pigz 为例说明用法:
1、安装

sudo apt install pigz
sudo yum install pigz

2、用法

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

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

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

linux常用压缩-解压-打包命令相关推荐

  1. linux常用压缩/解压命令

    gzip/gunzip gzip/gunzip是用来压缩和解压缩单个文件的工具,使用方法比较简单,直接在命令后跟文件名即可. 在我的dir01目录下有三个文件,1.txt里面编辑了一些乱七八糟的内容, ...

  2. 解压命令linux tgz,linux常用压缩解压命令:tar,tgz,gzip,zip,rar

    一,tar (一) tar压缩命令tar -cvf examples.tar files|dir #说明: -c, --create  create a new archive 创建一个归档文件 -v ...

  3. linux常用压缩解压命令:tar,tgz,gzip,zip,rar

    https://www.csdn.net/tags/MtzaEg2sODczMDItYmxvZwO0O0OO0O0O.html 一,tar (一) tar压缩命令tar -cvf examples.t ...

  4. Linux常用压缩解压命令

    1.tar 基本用法: 1.打包文件:tar -cvf ~/test.tar ~/test 2.打包并压缩文件:tar -zcvf ~/test.tar.gz ~/test 2.解包文件:先切换到要解 ...

  5. linux打包tar包命令,Linux tar 命令压缩解压打包详解

    Linux中压缩解压打包命令中用的最多的tar命令.tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户.在使用tar的参数需要区分大小写,参数写 ...

  6. linux+shell+解压命令,linux shell 压缩解压命令

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------- .gz 解压 ...

  7. Linux按压缩率大小排序,Linux下常用压缩 解压命令与压缩比率对比

    常用的格式有: tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar 只是打包动作,相当于归档处理,不做压缩:解压也一样 ...

  8. Linux下常用压缩 解压命令和压缩比率对比

    https://www.cnblogs.com/joshua317/p/6170839.html Linux下常用压缩 解压命令和压缩比率对比 常用的格式有: tar, tar.gz(tgz), ta ...

  9. Linux中常用的tar解压打包命令语法介绍

    常用的tar解压打包命令语法介绍 1.命令格式 2.命令功能 3.命令参数 4.常见解压/压缩命令 5.使用实例 1.命令格式 tar[必要参数][选择参数][文件] 2.命令功能 用来压缩和解压文件 ...

最新文章

  1. 今晚8点直播 | 详解微软小冰全双工语音对话技术
  2. IntelliJ IDEA添加过滤文件或目录
  3. 文计笔记7:HTML与CSS
  4. mysql keepalived双主双活_Keepalived单网络双活双主配置模式
  5. Python正则表达式中问号的四种用法
  6. 第十七部分-Python文档和测试
  7. 绝对定位元素设置水平居中
  8. Use function as controller
  9. MFC中OnCtlColor的用法(改变控件颜色)
  10. Solr查询参数sort(排序)
  11. java(22) - 异常详解
  12. c语言函数官网,c语言函数
  13. 深入理解linux网络pdf,深入理解Linux网络技术内幕 pdf epub mobi txt 下载
  14. java实现萤石云截图保存上传到ftp功能
  15. 使用iText对pdf中敏感信息进行马赛克处理
  16. was英文读音_英语单词was怎么读
  17. 输出纹波和纹波电流测试规范分享
  18. 2020编译原理练习记录(2)
  19. html表格纵向变横向,html表格,表头竖向固定,横向滚动的例子
  20. UML—用例图的扩展关系和包含关系的区别

热门文章

  1. 使用python3 爬取京东苹果手机价格
  2. Java获取iphone手机gps信息_html5获取手机GPS信息的示例代码分享
  3. 2018宝宝取名常用字(带释义)
  4. 手机设置charles代理
  5. 魅族 linux 定时器,魅族已哭晕,乌班图(Ubuntu)系统一加抢了首发
  6. python之类成员和实例成员
  7. 用canvas绘制“具有碰撞检测效果的运动五角星”
  8. 大厂招聘 Cocos 人才,多城市有岗
  9. 2014网易校招互联网产品笔试分享
  10. Parallels虚拟机休眠后死机解决方法