linux环境下常用的打包、压缩、解压命令(tar、gzip、bzip2、zip)
文章目录
- 前言
- 基础概念
- 打包/归档
- 压缩
- 解压
- 打包压缩
- 压缩解压命令
- 总结
前言
经常使用电脑的人常常会接触到压缩文件,不管是软件、数据还是资料,下载之后通常就是一个压缩包,在Windows平台上如果安装了WinRAR或者360压缩,不管是什么格式的压缩文件,一般点击压缩文件右键选择解压选项即可,非常地方便。正因为长时间在Windows平台上方便的解压文件,导致我对打包、压缩的概念理解错误,结果在linux操作压缩文件时有很多疑问,今天终于明白了一点,专门总结一下,同时列举常用的压缩、解压命令,方便日后查找使用。
linux上操作压缩文件也是通过命令实现的,但是压缩文件的后缀有很多,比如.tar.gz
、.tar.bz2
、.gz
、.zip
、.Z
等等,而生成和解压这些文件的命令同样很多,比如tar
、gzip
、bzip2
、zip
、unzip
等,看得人眼花缭乱,记忆的过程中也常常出现偏差,不是命令不对应就是参数错误,特别是一些不常用的压缩格式,经常需要查询尝试,浪费了不少时间,其实造成这些问题的原因还是由于对打包压缩的概念不太清楚,接下来先了解一下这些概念。
基础概念
在Windows上经常直接在图形化界面上操作压缩和解压文件,导致我将这种操作行为带到了linux上,而实际上在linux上压缩和解压文件之外还有一个操作就是“打包”,原因就是linux的压缩和解压通常作用在一个文件上,如果想将一大堆文件压缩最终成为一个文件,需要先打成一个包,然后对这个包文件进行压缩。
打包/归档
打包或者叫归档,就是将多个文件和目录(也可以是一个文件)就变成了一个总的文件,但不是将所有文件进行融合,使用tar
命令。
压缩
压缩是将一个大的文件通过特定的压缩算法尽可能变成一个小文件,可以减少存储空间,加快网络传输效率,使用gzip
、bzip2
、zip
等命令。
解压
解压是将压缩生成的最终的小文件还原为压缩之前的大文件,可以使用gzip
、gunzip
、bunzip2
、unzip
等命令。
打包压缩
通过上面的概念解析我们可以知道,我们之前所说的压缩操作通常是指打包和压缩两个步骤,由于linux大部分的压缩命令都是只能压缩一个文件,所以在压缩之前需要将待压缩的所有文件先进行打包,生成一个文件后再进行压缩操作。
明白了打包和压缩操作的含义,我们可以通过一些约定俗成的命名规则,选择合适的压缩和解压方法,比如下面这些文件:
- xxx.tar:这是一个归档文件,也就是只通过
tar
进行了打包操作 - xxx.tar.gz:这是一个压缩文件,打包之后,以
gzip
方式进行了压缩 - xxx.tar.bz2:这是一个压缩文件,打包之后,以
bzip2
方式进行了压缩 - xxx.gz:这是一个压缩文件,没有经过打包操作,只是
gzip
方式进行了压缩
如果能按照这些命名规则生成压缩文件,那么解压文件的时候会方便很多,但有时压缩文件的扩展名是不标准的,可以通过file
命令查看文件实际的格式,使用方法如下:
[albert@localhost#15:03:05#/home/albert/compress]$file test.tar.bz2
test.tar.bz2: bzip2 compressed data, block size = 900k[albert@localhost#15:03:24#/home/albert/compress]$file test.tar.gz
test.tar.gz: gzip compressed data, from Unix, last modified: Wed Nov 6 12:02:05 2019
压缩解压命令
压缩文件的格式和命令真的是太多,所以在此总结一份常用命令表格,方便日后需要的时候直接拿来就用,加快解决问题的速度。假设原始文件是a.log和b.txt,当前目录下还有一个output目录,可以作为解压后存放文件的目录,那么常用压缩和解压命令如下:
文件格式 | 压缩命令 | 命令备注 | 解压命令 | 命令备注 |
---|---|---|---|---|
xxx.tar |
tar -cvf test.tar a.log b.txt
|
- |
tar -xvf test.tar -C ./output
|
不使用-C 则解包在当前目录
|
xxx.tar.gz |
tar -zcvf test.tar.gz a.log b.txt
|
- |
tar -zxvf test.tar.gz -C ./output
|
不使用-C 则解压在当前目录
|
xxx.tar.bz2 |
tar -jcvf test.tar.bz2 a.log b.txt
|
- |
tar -jxvf test.tar.bz2 -C ./output
|
不使用-C 则解压在当前目录
|
xxx.tar.Z |
tar -Zcvf test.tar.Z a.log b.txt
|
- |
tar -Zxvf test.tar.Z -C ./output
|
不使用-C 则解压在当前目录
|
xxx.gz |
gzip -c a.log > test.gz 、gzip a.log
|
前者保留a.log,后者直接删除a.log |
gzip -d test.gz 、gunzip test.gz
|
不能指定解压文件存储目录 |
xxx.bz2 |
bzip2 -c a.log > test.bz2 、bzip2 a.log
|
前者保留a.log,后者直接删除a.log |
bzip2 -d test.bz2 、bunzip2 test.bz2
|
不能指定解压文件存储目录 |
xxx.Z |
compress -c a.log > test.Z 、compress a.log
|
前者保留a.log,后者直接删除a.log |
compress -d test.Z 、uncompress test.Z
|
不能指定解压文件存储目录 |
xxx.rar |
rar a test.rar a.log
|
- |
unrar e test.rar
|
将e 选项换成x 可以指定目录
|
xxx.zip |
zip test.zip a.log b.txt
|
- |
unzip test.zip -d ./output
|
不使用-d 则解压在当前目录
|
分析对比上面的压缩也解压命令可以发现,tar
这个命令可以将打包和压缩合并到一起,也可以将解压和解包合并到一起,只需要修改选项中的参数就可以调用不同的程序压缩或者解压,比如-cvf
表示只打包不压缩,而-zcvf
表示打包后使用gzip
压缩,改为-jcvf
表示打包后使用bzip2
压缩,其实还有很多的压缩方式,可以参考一下tar
命令的帮助文档,具体压缩选项如下。
压缩选项:
-a, --auto-compress 使用归档后缀名来决定压缩程序
-I, --use-compress-program=PROG 通过 PROG 过滤(必须是能接受 -d 选项的程序)
-j, --bzip2 通过 bzip2 过滤归档
-J, --xz 通过 xz 过滤归档
–lzip 通过 lzip 过滤归档
–lzma 通过 lzma 过滤归档
–lzop
–no-auto-compress 不使用归档后缀名来决定压缩程序
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-Z, --compress, --uncompress 通过 compress 过滤归档
总结
- 上述这些命令只是基础用法,还有很多参数选型没有提到,比如
tar -tf test.tar
可以不解压直接查看归档文件中的内容。 gzip
命令只能压缩一个文件,如果在命令后面添加多个文件,则会分别压缩生成多个文件。- 据说
compress
命令是一个相当古老的 unix 档案压缩指令,现在基本被gzip
命令取代了。 - 由于文中涉及的命令较多,难免有些笔误,为了不传播错误用法,我也进行了多次检查,如果大家还发现其他错误,欢迎批评指正。
linux环境下常用的打包、压缩、解压命令(tar、gzip、bzip2、zip)相关推荐
- Linux环境下,文件的压缩/解压
一.zip格式 zip可能是目前使用的最多的文档压缩格式.优点:可以在不同的操作系统平台上使用.缺点:支持的压缩率不是很高.而tar.gz和tar.bz2在压缩率方面做得非常好. 压缩一个zip文 ...
- linux tar压缩gzip,Linux 压缩 解压命令 tar, gzip, zcat,bzip2, bzcat,compres
Linux压缩打包命令使用方法 tar命令 [root@linux ~]# tar [-cxtzjvfpPN]文件与目录.... 参数: -c:建立一个压缩文件的参数指令(create的意思): -x ...
- linux+压缩率最高的命令,Linux压缩解压命令tar、tgz、tar.bz2压缩比率对比
在Linux系统下用户最常用到的压缩解压命令是tar.tar.gz(tgz).tar.bz2,当然还有gz.zip.rar,下面将对tar.tar.gz(tgz).tar.bz2这三个命令进行压缩比率 ...
- LinuxStudyNote(29)-Linux常用命令(6)-压缩解压命令汇总gzip、gunzip、tar、zip、unzip、bzip2、bunzip2
注意linux中的压缩包windows都支持,但反过来就不一定了 压缩解压命令汇总 压缩文件类型 压缩命令 解压缩 .gz gzip person.file gunzip person.file.gz ...
- 压缩解压命令(gzip、gunzip | tar | zip、unzip | bzip2、bunzip2)
目录 压缩:gzip 与 解压:gunzip 压缩解压命令:tar 压缩命令:tar -zcf 解压命令:tar -zxf 压缩解压命令:zip.unzip zip:压缩文件或目录 unzip:解 ...
- linux中的压缩解压命令:gzip,tar,zip,bzip2
gzip 命令名称:gzip 语法:gzip 文件 功能:压缩文件 压缩后文件格式:.gz 例子1 如上图所示,先用touch命令创建一个新文件file1,然后使用gzip压缩该文件. 例子2 如上 ...
- tar 打包压缩解压命令
-c --create :打包,打包的意思就是说把一堆文件打包成一个文件 -v --verbose :显示详细的tar处理的文件信息的过程 -f --file :要操作的文件名 -x --extrac ...
- Linux按压缩率大小排序,Linux下常用压缩 解压命令与压缩比率对比
常用的格式有: tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar 只是打包动作,相当于归档处理,不做压缩:解压也一样 ...
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...
最新文章
- 嵌入式系统降低功耗的设计技术
- linux服务器优化1.0版
- moravec 角点检测
- java的集合:List、Set和Map
- AWK增强的文本处理shell特征--AWK完全手册
- polkit 重新安装_不折腾,为U-NAS安装一个清爽的桌面,把小U打造成双面高手
- 分布式光伏补贴_四川:2020年起工商业分布式光伏已无补贴
- otb100matlab,ECO for tracking 在 OTB100 基准测试和 VOT2016 数据集中的实验结果
- python-week5
- python中的点的作用_Python基础学习中关键点的作用(三),python,重点,之,函数,3
- 腾讯或于本周正式宣布合并搜狗?官方回应:看点招聘及搜狗合并均正常进行...
- c/c++教程 - 2.4.2.3~4 拷贝构造函数的调用时机,构造函数调用规则
- Qt总结:QMessageBox(原生态弹出框及究极超nice封装自定义弹出框)
- 金蝶服务器出纳系统无法启动,金蝶KIS专业版启用出纳系统时提示银行账号或银行名称不能为空...
- 将MATLAB任务栏变成白色的图标恢复
- 直播软件搭建时如何在视频通话中加入美颜处理
- Hive学习之路 (二)Hive安装
- lightOJ 1278
- table表格锁定任意数量列或行
- Vue知识点总结(16)——具名插槽(超级详细)