Linux 基础教程 32-解压缩命令
将文件压缩后对提升数据传输效率,降低传输带宽,管理备份数据都有非常重要的功能,因此文件压缩解压技能就成为必备技能。相对于Windows中的文件解压缩工具百花争艳,在Linux中的解压缩工具则要少很多,常用的解压缩命令主要为gzip、bzip2、tar、zip等等。
gzip命令
gzip只能针对普通文件进行压缩和解压,对于文件夹,符号链接等是不支持的。基本语法如下所示:
gzip [选项] [文件]
常用参数如下所示:
| 参数 | 说明 |
|---|---|
| -d , --decompress | 解压文件 |
| -f , --force | 压缩/解压文件强制覆盖已经存在的文件 |
| -l , --list | 显示压缩包的信息,如压缩前大小、压缩后大小、压缩比例等 |
| -r , --recursive | 递归压缩指定目录中的所有文件和子目录中的文件,将每个文件都压缩为一个gz文件 |
| -t , --test | 检查压缩文件的完整性 |
| -v , --verbose | 显示详细过程 |
| -V , --version | 显示版本信息 |
压缩速度和压缩强度
在压缩文件时,可以根据实际需要采用不同的压缩速度和压缩强度,来调整压缩的时间和压缩比例。在gzip中共提供了9种压缩级别。
- -1:代表压缩速度最快,但压缩强度不高
- -9:代表压缩强度最高,但压缩速度较慢
- -6:gzip默认值
gzip示例如下所示:
- 1、添加压缩文件
[root@localhost Python-3.7.0]# du -sh Python-3.7.0
189M Python-3.7.0
[root@localhost Python-3.7.0]# gzip -r Python-3.7.0
[root@localhost Python-3.7.0]# du -sh Python-3.7.0
64M Python-3.7.0
[root@localhost Python-3.7.0]# ll
总用量 10856
-rw-rw-r-- 1 root root 3731 6月 27 11:07 aclocal.m4.gz
drwxr-xr-x 5 root root 82 7月 20 12:43 build
-rw-rw-r-- 1 root root 13214 6月 27 11:07 config.guess.gz
-rw-r--r-- 1 root root 38624 7月 20 12:48 config.log.gz
- 2、压缩tar包
[root@localhost Python-3.7.0]# gzip Python-3.7.0.tar
[root@localhost Python-3.7.0]# ll -h
总用量 52M
-rw-r--r-- 1 root root 52M 7月 24 14:13 Python-3.7.0.tar.gz
- 3、解压压缩包
gzip -d Python-3.7.0.tar.gz
- 4、显示压缩包信息
[root@localhost Python-3.7.0]# gzip -l Python-3.7.0.tar.gz
compressed uncompressed ratio uncompressed_name
53670458 190464000 71.8% Python-3.7.0.tar
bzip2
bzip2与gzip非常类似,区别在于gzip压缩和解压均是同一个命令,而bzip2压缩命令为bzip2,解压缩命令为bunzip2
tar命令
在Linux中tar命令算是用得最多的命令了,基基本语法如下所示:
tar [选项] [文件]
其常用参数如下所示:
| 选项 | 说明 |
|---|---|
| -A , --catenate | 向压缩包中添加压缩包 |
| -c, --create | 新建压缩包 |
| -C, --directory=DIR | 指定解压缩目录 |
| -d, --diff | 对比压缩包与文件系统的差异 |
| --delete | 从压缩包删除指定的文件 |
| -r, --append | 添加文件末尾追加文件 |
| -t, --list | 显示压缩包中的目录结构 |
| -u, --update | 仅向压缩包中添加较新的文件 |
| -x, --extract | 解压压缩包 |
| -f, --file=ARCHIVE | 指定压缩文件 |
| -v, --verbose | 显示详细过程 |
| -j, --bzip2 | 支持bzip2 |
| -z, --gzip | 支持gzip |
| --overwrite | 解压时如果文件已经存在,则进行替换 |
使用tar需要注意的事项如下所示:
- 1、常用的主选项参数如下:
-c -x -t -r -u
以上这5个参数同时只能出现一个,不能同时出现多个
- 2、辅助选项
-f :一般情况需要将该参数放置在最后位置,后面紧跟文件名
tar 示例如下所示:
- 1、添加压缩文件到当前目录
[root@localhost ~]# tar -cf Alltxt.tar *.txt
- 2、查看压缩包内容
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
- 3、向压缩包中添加压缩包
[root@localhost ~]# tar -cf Alltxt.tar *.txt
[root@localhost ~]# tar -cf Allbak.tar *.bak
[root@localhost ~]# tar -Af Alltxt.tar Allbak.tar
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
append.txt.bak
- 4、向压缩包中添加文件
[root@localhost ~]# tar -rf Alltxt.tar out
[root@localhost ~]# tar -tf Alltxt.tar
in.txt
out.txt
packstack-answers-20180710-091950.txt
packstack-answers-20180710-092155.txt
packstack-answers-20180710-100538.txt
append.txt.bak
out/
out/out.txt
out/eip.sh
- 5、更新压缩包中的文件
[root@localhost ~]# tar -uf Alltxt.tar append.txt.bak
- 6、解压文件到指定目录
[root@localhost ~]# tar -xf Python-3.7.0.tar -C TarTest/
- 7、解压压缩包中的指定文件
[root@localhost Python-3.7.0]# tar -xf Python-3.7.0.tar Python-3.7.0/pyconfig.h
[root@localhost Python-3.7.0]# tree Python-3.7.0
Python-3.7.0
└── pyconfig.h
0 directories, 1 file
zip命令
跟bzip2类似,zip用于压缩文件,而unzip用于解压缩文件。其基本语法如下所示:
zip [选项] [指定文件名] [压缩文件或路径]
uzip [选项] [压缩包名称]
- zip常用参数如下所示:
| 选项 | 说明 |
|---|---|
| -c , --entry-comments | 给压缩文件添加注释 |
| -d , --delete | 从压缩包删除指定文件 |
| -D | 压缩包不创建目录名称 |
| -f , --freshen | 与参数 -u 类似,不仅更新已有文件,而且也添加压缩包没有的文件 |
| -i files/ --include files | 仅向压缩包添加指定的文件 |
| -m , --move | 将原始文件添加到压缩包删除原文件 |
| -O output-file | |
| -q , --quiet | 静默模式 |
| -r , --recurse-paths | 递归处理指定目录和子目录 |
| -T , --test | 检查压缩包的完整性 |
| -u , --update | 将较新的文件更新替换到压缩包中 |
| -v , --verbose | 显示详细过程 |
| -x files/--exclude files | 压缩文件时添加排除项 |
| -# (-0~-9) | 设置压缩级别,-0:不压缩文件,-1:最快压缩速度,-9:最好压缩强度,默认为-6 |
- unzip常用参数
| 选项 | 说明 |
|---|---|
| -l | 显示压缩包中的内容 |
| -t | 检查压缩包的完整性 |
| -o | 强制覆盖已存在的文件而不提示 |
| -j | 不处理压缩文件中的原有目录路径 |
| -d exdir | 指定解压目录 |
zip/unzip示例如下所示:
- 1、添加压缩包
[root@localhost Python-3.7.0]# zip -r Python-3.7.0.zip Python-3.7.0
- 2、解压压缩包
unzip -d /tmp/ Python-3.7.0.zip
- 3、检查压缩包完整性
[root@localhost Python-3.7.0]# unzip -t Python-3.7.0.zip
Archive: Python-3.7.0.zip
testing: Python-3.7.0/ OK
testing: Python-3.7.0/install-sh OK
...
testing: Python-3.7.0/pybuilddir.txt OK
No errors detected in compressed data of Python-3.7.0.zip.
- 4、显示压缩包内容
[root@localhost Python-3.7.0]# unzip -l Python-3.7.0.zip
Archive: Python-3.7.0.zip
Length Date Time Name
--------- ---------- ----- ----
0 07-20-2018 12:50 Python-3.7.0/
7122 06-27-2018 11:07 Python-3.7.0/install-sh
101855 06-27-2018 11:07 Python-3.7.0/setup.py
0 07-20-2018 12:37 Python-3.7.0/.vsts/
13965984 07-20-2018 12:50 Python-3.7.0/python
26 07-20-2018 12:50 Python-3.7.0/pybuilddir.txt
--------- -------
186791269 4771 files
- 5、删除压缩包中指定的文件
[root@localhost Python-3.7.0]# zip Python-3.7.0.zip -d Python-3.7.0/*.o
deleting: Python-3.7.0/Modules/config.o
deleting: Python-3.7.0/Modules/getpath.o
deleting: Python-3.7.0/Modules/main.o
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

Linux 基础教程 32-解压缩命令的更多相关文章
- Linux 基础教程 37-进程命令
pidof 我们知道每个小孩一出生就会一个全国唯一的编号来对其进行标识,用于以后上学,办社保等,就是我们的身份证号.那么在Linux系统中,用来管理运行程序的标识叫做PID,就是大家熟知的进程 ...
- Linux基础 - 系统优化及常用命令
目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...
- Linux基础系统优化及常用命令
# Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...
- 嵌入式LINUX基础教程 第2版
嵌入式LINUX基础教程 第2版 目录 第1章 入门 11.1 为什么选择Linux 11.2 嵌入式Linux现状 21.3 开源和GPL 21.4 标准及相关组织 31.4.1 Linux标准基 ...
- Linux基础01 学会使用命令帮助
Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题, ...
- [SQL基础教程] 3-2 对表进行分组
[SQL基础教程] 3-2 对表进行分组 GROUP BY SELECT <列名1>,<列名2>,... FROM <表名> GROUP BY <列名1> ...
- Linux基础教程 linux中使用find命令搜索文件常用方法记录
find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
- GStreamer基础教程12 - 常用命令工具
摘要 GStreamer提供了不同的命令行工具用于快速的查看信息以及验证Pipeline的是否能够正确运行,在平时的开发过程中,我们也优先使用GStreamer的命令行工具验证,再将Pipeline集 ...
随机推荐
- ffmpeg C++程序编译时报__cxa_end_catch错误
解决方法在编译sh中加上 -lsupc++ 即可. 2.STL模块函数找不到,链接失败stdc++/include/bits/stl_list.h:466: error: undefined refe ...
- noip2009最优贸易(水晶球)
题目:http://codevs.cn/problem/1173/ https://www.luogu.org/problemnew/show/P1073 本来考虑缩点什么的,后来发现不用. 只要记录 ...
- FreeFileSync 4.2 发布,文件夹比较和同步工具
FreeFileSync 是一款开源的文件夹比较和同步工具,可用于 Win 和 Lin 平台,最近发布了 4.2 版本. FreeFileSync 采用双面板设计,使用方法很简单: 在左面版和右面版上 ...
- ExtJS组件扩展
1.extends 2.initComponent 3.constracot: 4.onRender:重新写这个方法 ========================================= ...
- MySQL与PostgreSQL相比哪个更好?
网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理.在开始分析前,先来看下这两张图: MySQL MySQL声称自己是最流行的开源数据库.LAMP中的 ...
- [Delphi] 调用ocx
function RegisterDllServer(FileName: string): boolean; var nDllAddr: integer; bstr: string; ProcAddr ...
- PHP报错open_basedir restriction in effect
问题是出现在了PHP.INI上面了 原因是php.ini里设置了 open_basedir=/var/web/w0895/:/tmp:/usr/lib/php 这里加上相关的目录就可以了 解答:其实o ...
- MyEclipse8.6启动后提示内存不足的解决方案(亲测,完美解决)
转自:http://www.bubuko.com/infodetail-1625857.html 最近可能由于公司项目大了,启动MyEclipse后经常提示内存不足的警告框,如下: 其实点击close ...
- BTN事件的响应区域
是其下所有小图片的区域组合.是并集
- OpenLayers3 学习-1
OpenLayers3 学习-1-简介 OpenLayers3(OL3)对OL2进行了重新设计和实现,支持多种格式的商业和免费的地图数据源.未来的版本将包括显示3D地图或利用WebGL进行大规模矢量数 ...