之前说过,在Linux系统下,文件是不区分扩展名的。但是Linux系统支持很多种压缩格式,如果压缩文件不写上扩展名,你自己创建的压缩文件可能你自己知道,但是过一阵你可能也忘记了。其他管理员也很难知道该文件是一个压缩文件。同时每一种压缩文件的解压缩格式也是不同的,如果你没有写压缩文件的扩展名,解压缩的时候就会很麻烦,你需要先手动查询一下该压缩文件的类型,再进行解压缩。所以压缩文件一定要写上扩展名,这个扩展名不是给系统看的,是方便管理员操作的。
在Linux中可以识别的、常见的压缩格式有十几种,比如“.zip”“.gz”“.bz2”“.tar”“tar.gz”“tar.bz2”等。下面说一些常见的压缩格式。
一、“.zip”格式
“.zip”是Windows中最常用的压缩格式,Linux也可以正确识别“.zip”格式,这是一种可以方便地和Windows系统通用压缩文件。
注意:windows系统下还有一些压缩包如.rar、.7z,这些压缩格式的文件在Linux系统就不能使用了。“.zip”我们在Linux系统中不常用,主要是用于和windows系统的压缩文件通用。
1、“.zip”格式的压缩命令
压缩命令就是zip,其基本信息如下。
- 命令名称:zip。
- 英文原意:package and compress(archive)files。
- 所在路径:/usr/bin/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。
- 执行权限:所有用户。
- 功能描述:列表、测试和提取压缩文件中的文件。
命令格式如下:
[root@localhost ~ ] # unzip [选项] 压缩包名
选项:
-d:指定解压缩位置
例如:
#把压缩包解压到指定位置
[root@DevOps test] # unzip 123.zip -d /root/test/
“.zip"格式在Linux下不常用,记住会用就好。
二、“.gz”格式
1、“.gz”格式的压缩命令
“.gz”格式是Linux中最常用的压缩格式,使用gzip命令进行压缩,其基本信息如下。
- 命令名称:gzip。
- 英文原意:compress or expand files。
- 所在路径:/bin/gzip。
- 执行权限:所有用户。
- 功能描述:压缩文件或目录。
命令的格式如下:
[root@localhost ~ ] # gzip [选项] 源文件
选项:
-c:将压缩数据输出到标准输出中,可以用于保留源文件
-d:解压缩
-r:压缩目录(不会把目录打包,只会把目录中的文件单独压缩)
练习:
# ”.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
# 压缩目录
[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
注意:不会把目录打包,只会把目录中的文件单独压缩。
#解压目录
[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
# ”.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”格式的压缩文件
[root@localhost ~ ]#gunzip install.1og.gz
[root@localhost ~ ]#gzip -d anaconda-ks.cfg.gz