『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令
之前说过,在Linux系统下,文件是不区分扩展名的。但是Linux系统支持很多种压缩格式,如果压缩文件不写上扩展名,你自己创建的压缩文件可能你自己知道,但是过一阵你可能也忘记了。其他管理员也很难知道该文件是一个压缩文件。同时每一种压缩文件的解压缩格式也是不同的,如果你没有写压缩文件的扩展名,解压缩的时候就会很麻烦,你需要先手动查询一下该压缩文件的类型,再进行解压缩。所以压缩文件一定要写上扩展名,这个扩展名不是给系统看的,是方便管理员操作的。
在Linux中可以识别的、常见的压缩格式有十几种,比如.zip
、.gz
、.bz2
、.tar
、tar.gz
、tar.bz2
等。
下面对一些常见的压缩格式进行说明。
1、“.zip”格式压缩
.zip
是Windows中最常用的压缩格式,Linux也可以正确识别.zip
格式,这是一种可以方便地和Windows系统通用压缩文件。
注意:Wwindows系统下还有一些压缩包如
.rar
、.7z
,这些压缩格式的文件在Linux系统就不能使用了。.zip
我们在Linux系统中不常用,主要是用于和Windows系统的压缩文件通用。
(1)“.zip”格式的压缩命令
Linux中,.zip
格式文件的压缩命令就是zip
,其基本信息如下:
- 命令名称:
zip
- 英文原意:
package and compress(archive)files
- 所在路径:
/usr/bin/zip
- 执行权限:所有用户。
- ·功能描述:压缩文件或目录。
zip
命令格式如下:
[root@localhost ~]# zip [选项] 压缩包名 源文件或源目录
选项:
-r:指定要压缩的目录
示例:
[root@localhost ~]# zip ana.zip anaconda-ks.cfg
# 把多个文件压缩到一个压缩文件中
[root@localhost ~]# zip test.zip abc abcd
adding:abc (deflated 56%)
adding:abcd(stored 0%)
# 把多个文件和目录压缩到一个压缩文件中
[root@DevOps test]# zip 123.zip abc def -r /root/
(2)“.zip”格式的解压缩命令
.zip
格式文件的解压缩命令是unzip
,其基本信息如下:
- 命令名称:
unzip
- 英文原意:
list,test and extract compressed files in a ZIP archive
- 所在路径:
/usr/bin/unzip
- 执行权限:所有用户。
- 功能描述:列表、测试和提取压缩文件中的文件。
unzip
命令格式如下:
[root@localhost ~]# unzip [选项] 压缩包名
选项:
-d:指定解压缩位置
示例:
# 把压缩包解压到指定位置
[root@DevOps test]# unzip 123.zip -d /root/test/
提示:
.zip
格式的文件在Linux下不常用,记住会用就好。
2、“.gz”格式压缩
(1)“.gz”格式的压缩命令
.gz
格式文件是Linux中最常用的压缩格式,使用gzip
命令进行压缩。其基本信息如下:
- 命令名称:
gzip
- 英文原意:
compress or expand files
- 所在路径:
/bin/gzip
- 执行权限:所有用户。
- 功能描述:压缩文件或目录。
gzip
命令格式如下:
[root@localhost ~]# gzip [选项] 源文件
选项:
-c:将压缩数据输出到标准输出中,可以用于保留源文件
-d:解压缩
-r:压缩目录(不会把目录打包,只会把目录中的文件单独压缩)
示例:
# 1.”.gz”格式压缩
[root@DevOps test]# ll
-rw-r--r--. 1 root root 0 1月 9 18:17 abc
-rw-------. 1 root root 0 1月 9 18:17 def
[root@DevOps test]# gzip abc
[root@DevOps test]# ll
总用量 4
-rw-r--r--. 1 root root 24 1月 9 18:17 abc.gz
-rw-------. 1 root root 0 1月 9 18:17 def
# 2.压缩目录
[root@DevOps test]# ll
总用量 0
-rw-r--r--. 1 root root 0 1月 12 00:40 abc
-rw-------. 1 root root 0 1月 9 18:17 def
[root@DevOps test]# cd ..
[root@DevOps ~]# gzip -r test/
[root@DevOps ~]# ll /root/test/
总用量 8
-rw-r--r--. 1 root root 24 1月 12 00:40 abc.gz
-rw-------. 1 root root 24 1月 9 18:17 def.gz
# 注意:不会把目录打包,只会把目录中的文件单独压缩。
# 3.解压目录
[root@DevOps ~]# gzip -dr test/
[root@DevOps ~]# ll /root/test/
总用量 0
-rw-r--r--. 1 root root 0 1月 12 00:40 abc
-rw-------. 1 root root 0 1月 9 18:17 def
# 4.”.gz”格式压缩,并保留源文件(非常规操作,知道就好)
[root@localhost ~]# gzip -c anaconda-ks.cfg >> anaconda-ks.cfg.gz
# 提示:>为覆盖内容,>>为追加内容。
注意:
- 使用
.gz
格式压缩文件后,源文件会被删除掉。- 使用
-c
选项,会把文件内容压缩之后的二进制数据,输出到屏幕上。而我们不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样可以在压缩文件的同时不删除源文件。
(2)“.gz”格式的解压缩命令
如果要解压缩gz
格式,那么使用gzip -d 压缩包
和gunzip 压缩包
命令都可以。
我们先看看gunzip
命令的基本信息:
- 命令名称:
gunzip
- 英文原意:
compress or expand files
- 所在路径:
/bin/gunzip
- 执行权限:所有用户。
- 功能描述:解压缩文件或目录。
示例:两个命令都可以解压缩.gz
格式的压缩文件。
# 1.使用gunzip命令
[root@localhost ~]# gunzip install.1og.gz
# 2.使用gzip命令
[root@localhost ~]# gzip -d anaconda-ks.cfg.gz
3、“.bz2”格式压缩
** (1)“.bz2”格式的压缩命令**
.bz2
是Linux的另一种压缩格式,从理论上来讲,.bz2
格式压缩的算法更先进、压缩比更好;而.gz
格式相对来讲压缩的时间更快。(压缩比越高,压缩的时候越消耗资源。)
.bz2
格式的压缩命令是bzip2
,命令的基本信息如下:
- 命令名称:
bzip2
- 英文原意:
a block-sorting file compressor
- 所在路径:
/usr/bin/bzip2
- 执行权限:所有用户。
- 功能描述:.bz2格式的压缩命令。
bzip2
命令的基本格式如下:
[rootelocalhost ~]# bzip2 [选项] 源文件
选项:
-d:解压缩
-k:压缩时,保留源文件
-v:显示压缩的详细信息(意义不大,知道就行)
示例:
# 压缩成.bz2格式(不保留源文件)
[root@localhost ~]# bzip2 anaconda-ks.cfg
# 保留源文件压缩
[root@localhost ~]# bzip2 -k install.log.syslog
注意:.bz2
压缩格式不能够压缩目录,看下面示例。
# 压缩目录
[root@DevOps ~]# bzip2 test/
bzip2: Input file test/ is a directory.
[root@DevOps ~]# ll /root/test/
总用量 0
-rw-r--r--. 1 root root 0 1月 12 00:40 abc
-rw-------. 1 root root 0 1月 9 18:17 def
# 发现目录中的文件并没有被压缩。
# 加入-r选项,则会直接报错,并提示你bzip2 命令都有哪些选项,这些选项中也没有压缩文件夹的选项。
[root@DevOps ~]# bzip2 -r test/
# 说明“.bz2”压缩格式,不能压缩目录。
** (2)“.bz2”格式的解压缩命令**
.bz2
格式的压缩文件可以使用bzip2 -d 压缩包
命令来进行解压缩,也可以使用bunzip2 压缩包
命令来进行解压缩。
先看看bunzip2
命令的基本信息:
- 命令名称:
bumzip2
- 英文原意:
a block-sorting file compressor
- 所在路径:
/usr/bin/bunzip2
- 执行权限:所有用户。
- 功能描述:bz2格式的解压缩命令。
示例:
# 两个命令都可以解压缩
[root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2
[root@localhost ~]# bzip2 -d install.1og.syslog.bz2
# 如果解压后文件存在冲突,会有提示。可删除冲突文件,在进行解压。
[root@localhost ~]# bzip2 -d bed.bz2
bzip2:Output file bcd already exists.
4、“.tar”格式打包
提示:先说一下打包不等于压缩呦,请往下看。
** (1)“.tar”格式的打包命令**
.tar
格式的打包和解打包都使用tar
命令,区别只是选项不同。
我们先看看tar
命令的基本信息:
- 命令名称:
tar
- 英文原意:
tar
- 所在路径:
/bin/tar
- 执行权限:所有用户。
- 功能描述:打包与解打包命令。
tar
命令的基本格式如下:
[root@localhost ~]# tar [选项] [-f压缩包名] 源文件或目录
选项:
-c:打包
-f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名
-v:显示打包文件过程
# 只是打包,不是压缩
[root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
练习:
# 打包123目录、abc文件、bcd文件。
[root@localhost ~]# tar -cvf test.tar 123 abc bcd
123/
123/hjk
123/yui
abc
bcd
# 注意:打包后源文件不会被删除。
** (2)“.tar”格式的解打包命令**
.tar
格式的解打包也需要使用tar
命令,但是选项不太一样。
命令格式如下所示:
[root@localhost ~]# tar [选项] 压缩包
选项:
-x:解打包
-f:指定压缩包的文件名-V:显示解打包文件过程
-t:测试,就是不解打包,只是查看包中有哪些文件
-C(大)目录:指定解打包位置
练习:
# 解打包
[root@localhost ~ ] # rm -rf 123 abc bcd
[root@localhost ~ ]# tar -xvf test.tar
123/
123/hjk
123/yui
abc
bcd
5、打包和压缩的关系
先把需要的文件进行打包,然后把打好的包再进行压缩。
# 1.把上边打好的test.tar包,在进行压缩。
[root@localhost ~]# gzip test.tar
# 得到test.tar.gz文件,是一个即压缩也打包的文件。
# 在用test.tar.gz文件的时候,先解压缩在解打包。
[root@localhost ]# gzip -d test.tar.gz
[root@localhost ~]# tar -xvf test.tar
123/
123/hjk
123/yui
abc
bcd
这样是不是用着很麻烦,其实不用担心,我们下边会有直接压缩打包和解压缩解打包的命令。
这里主要是在Linux系统中压缩和打包是两个命令。
6、“.tar.gz”和“.tar.bz2”格式打包并压缩
(1)使用tar命令直接打包压缩。
命令格式如下:
[root@localhost ~]# tar [选项] 压缩包 源文件或目录
选项:
-z:压缩和解压缩".tar.gz”格式
-j:压缩和解压缩".tar.bz2”格式
** (2)练习:”.tar.bz2“格式**
# 1.把123目录、abc文件、bcd文件,直接打包压缩为”.tar.bz2“格式文件
[root@localhost ~]# tar -jcvf test.tar.bz2 123 abc bcd
123/
123/hjk
123/yui
abc
bed
# 得到test.tar.bz2文件。
# 2.解压缩,先把源文件删除掉,再解压
[root@localhost ~]# rm -rf 123 abc bcd
[root@localhost ~]# tar -jxvf test.tar.bz2
123/
123/hjk
123/yui
abc
bcd
** (3)“tar.gz”格式**
# 1.把123目录、abc文件、bcd文件,直接打包压缩为“tar.gz”格式文件
[root@localhost ~]# tar -zcvf test.tar.gz 123 abc bcd
123/
123/hjk
123/yui
abc
bed
# 得到test.tar.gz文件。
# 2.解压缩,先把源文件删除掉,再解压
[root@localhost ~]# rm -rf 123 abc bcd
[root@localhost ~]# tar -zxvf test.tar.gz
123/
123/hjk
123/yui
abc
bcd
** (4)其他常用方式**
1)只查看不解压
[root@localhost ~]# tar -ztvf test.tar.gz
drwxr-xr-x root/root 02017-02-1714:44123/
-rw-r--r--root/root 02017-02-1714:41123/hjk
-rw-r--r--root/root02017-02-1714:41123/yui
-rw-r--r--root/root 1122017-02-17 09:16 abc
-rw-r--r--root/root 02017-02-17 14:44 bcd
用长格式显示了包中所有的文件和文件夹。
也就是把选项中的c变成t。-jtvf
同理。
2)解压缩到指定位置
[root@localhost ~]# tar -zxvf test.tar.gz -C /tmp
注意:
-C /tmp
一定要跟在解压缩包的后边,不然会保存。
3)只解压压缩包中的特定文件,到指定位置
[root@localhost ~]# tar -zxvf test.tar.gz -C/tmp 123/hjk
总结:我们在日常工作中,常用的压缩和解压缩命令,主要就是上面所说明的这些命令。
『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令的更多相关文章
- 『学了就忘』Linux用户管理 — 51、用户管理相关命令
目录 1.添加用户(useradd命令) 2.设定密码(passwd命令) 3.用户信息修改(usermod命令) 4.删除用户(userdel命令) 5.切换用户身份(su命令) 1.添加用户(us ...
- 『学了就忘』Linux用户管理 — 52、用户组管理相关命令
目录 1.添加用户组 2.删除用户组 3.把用户添加进组或从组中删除 4.有效组(了解) 1.添加用户组 添加用户组的命令是groupadd. 命令格式如下: [root@localhost ~]# ...
- 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址
目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...
- 『学了就忘』Linux基础命令 — 18、Linux命令的基本格式
目录 1.命令提示符说明 2.命令的基本格式 (1)举例ls命令 (2)说明ls -l命令的 输出内容 1.命令提示符说明 [root@localhost ~] # []:这是提示符的分隔符号,没有特 ...
- 『学了就忘』Linux基础命令 — 20、文件操作的相关命令
目录 1.touch 命令 2.stat命令 3.cat命令 4.more命令 5.less命令 6.head命令 7.tail命令 1.touch 命令 touch命令用于创建空文件或修改文件时间, ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
- 『学了就忘』Linux基础命令 — 27、搜索操作相关命令
目录 1.whereis命令 2.which命令 3.locate命令 1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令. ...
- 『学了就忘』Linux基础命令 — 28、别名和常用快捷键
目录 1.别名 2.常用快捷键 1.别名 别名也是Shell中的命令. 命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的. 命令格式: # 查询系统中命令别名 [root@localhost ...
- 『学了就忘』Linux基础命令 — 29、关机和重启
目录 1.sync数据同步 2.shutdown命令 3.reboot命令 4.halt和poweroff命令 5.init命令 1.sync数据同步 sync命令的基本信息如下: 命令名称:sync ...
随机推荐
- MYSQL分页 limit 太慢优化
limit分页原理 当我们翻到最后几页时,查询的sql通常是:select * from table where column=xxx order by xxx limit 1000000,20.查询 ...
- Python实现Telnet连接
import loggingimport telnetlibimport timeclass TelnetClient(): def __init__(self,): self.tn = telnet ...
- 鸿蒙内核源码分析(线程概念篇) | 是谁在不停的折腾CPU? | 百篇博客分析OpenHarmony源码 | v21.06
百篇博客系列篇.本篇为: v21.xx 鸿蒙内核源码分析(线程概念篇) | 是谁在不断的折腾CPU | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调 ...
- 牛客挑战赛48E-速度即转发【带修莫队,分块】
正题 题目链接:https://ac.nowcoder.com/acm/contest/11161/E 题目大意 给出\(n\)个数字的一个序列,\(m\)个操作. 给出\(l,r,k\),求一个最大 ...
- BATJ经典软件测试面试题我连答案都告诉你了,如果你不想月薪上万,那你别看!
单项选择题:共20小题,每小题1 分,满分20分:请将答案填入题后括号中. 1. 在软件生命周期的哪一个阶段,软件缺陷修复费用最低(A) A.需求分析(编制产品说明书) B.设计 C.编码 ...
- 记一次 .NET 某招聘网后端服务 内存暴涨分析
一:背景 1. 讲故事 前段时间有位朋友wx找到我,说他的程序存在内存阶段性暴涨,寻求如何解决,和朋友沟通下来,他的内存平时大概是5G 左右,在某些时点附近会暴涨到 10G+, 画个图大概就是这样. ...
- bzoj3262陌上花开 (CDQ,BIT)
题目大意 给定n朵花,每个花有三个属性,定义\(f[i]\)为满足\(a_j \le a_i\)且\(b_j \le b_i\)且\(c_j \le c_i\)的j的数量, 求\(d \in [0,n ...
- CVPR2021提出的一些新数据集汇总
前言 在<论文创新的常见思路总结>(点击标题阅读)一文中,提到过一些新的数据集或者新方向比较容易出论文.因此纠结于选择课题方向的读者可以考虑以下几个新方向.文末附相关论文获取方式. ...
- [云计算]Windows Server 2012 R2 配置AD/DNS/DHCP服务
目录 一.前期准备 1.1 安装Windows Server 2012 R2 1.2 关闭防火墙 1.3 改变计算机名 1.4 挂载并安装Tools 1.5 重启并配置网卡 1.6 添加角色和功能 1 ...
- IDA硬编码修改SO,重新打包APK绕过FRIDA反调试
该案例来自看雪 通过IDA修改SO 找到检测点 修改字符串 双击该字符串进入TEXT VIEW 选择 HEX VIEW 修改十六进制 右击EDIT 修改字符 右击 菜单栏-> edit -> ...