Linux文件打包及压缩、解包及解压

简介: 前面学习了文件的查找,这篇文章将学习Linux中文件的打包及解压、文件的解包和解压。这就是这篇文章的学习目标,学会如何打包压缩,解包解压。

前言


 前面学习了文件的查找,这篇文章将学习Linux中文件的打包及解压、文件的解包和解压。这就是这篇文章的学习目标,学会如何打包压缩,解包解压。


什么是压缩?


 压缩的原理就是去重法,在一个目录或者文件中有多个重复的内容,在压缩过程中会将这些重复的内容用简短的内容来代替,压缩的文件是无法直接打开的,需要经过解压才可以打开使用。


tar的介绍与使用


简介


 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以作用于任何环境中,他的使用权限是所有用户。

建议针对目录。


打包压缩文件


命令语法:语法:tar  选项  压缩包名称   源文件

选项可用:

  ● -cf:c是create   f是file,cf是打包。

  ● -czf:gzip压缩类型压缩文件,z是gzip。

  ● -cjf:bzip压缩类型压缩文件,j是bzip。

  ● -cJf:xzip压缩类型压缩文件,J是xzip。


注意:czf、cjf、cJf这些选项的字母顺序不能乱,不然会报错。


打包文件(不压缩)


命令:tar   -cf   压缩名   需要压缩的文件


代码如下(示例):

//查看test文件内容
[root@localhost ~]# ll /test
总用量 0
//打包etc文件到test/目录下,并且名称为tar.tar
[root@localhost ~]# tar -cf  /test/tar.tar /etc
tar: 从成员名中删除开头的“/”
//查看test目录内容
[root@localhost ~]# ll /test
总用量 38272
-rw-r--r--. 1 root root 39188480 10月 31 14:14 tar.tar


        仅仅是打包了etc/目录,并没有压缩。


gzip压缩类型压缩文件


命令:tar   -czf   压缩名   需要压缩的文件


代码如下(示例):

//调换f和z的顺序压缩文件失败
[root@localhost ~]# tar -cfz /test/tar-gzip.tar  /etc
tar: 从成员名中删除开头的“/”
tar: /test/tar-gzip.tar:无法 stat: 没有那个文件或目录
tar: 由于前次错误,将以上次的错误状态退出
//并没有压缩成功
[root@localhost ~]# ll -h /test/
总用量 38M
-rw-r--r--. 1 root root 38M 10月 31 14:14 tar.tar
//正确顺序czf压缩etc到test目录,压缩包名称为tar-gizip.tar
[root@localhost ~]# tar -czf /test/tar-gzip.tar  /etc
tar: 从成员名中删除开头的“/”
//查看test下文件内容
[root@localhost] ll -h /test/
总用量 50M
-rw-r--r--. 1 root root 12M 10月 31 14:36 tar-gzip.tar
-rw-r--r--. 1 root root 38M 10月 31 14:14 tar.tar


e2ec843cd5b542b58f3f87fc0f682070.png


 由代码可以看出czf这三个字母的顺序不能颠倒,否则会报错。如图所见,仅仅打包的文件大小为38M,压缩文件大小为12M,文件大小明显减少很多,为我们省去空间,这就是压缩的目的。


bzip压缩类型压缩文件


命令:tar -cjf  压缩文件名    需要压缩的文件


代码如下(示例):

//使用bzip格式解压文件etc到test目录,压缩包名为tar-bzip.tar
[root@localhost ~]# tar -cjf /test/tar-bzip.tar /etc
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ll -h  /test
总用量 60M
-rw-r--r--. 1 root root 11M 10月 31 14:41 tar-bzip.tar
-rw-r--r--. 1 root root 12M 10月 31 14:36 tar-gzip.tar
-rw-r--r--. 1 root root 38M 10月 31 14:14 tar.tar


使用cjf选项压缩文件的时候会发现压缩时间比czf选项压缩文件时间长。


xzip压缩类型压缩文件


命令:tar   -cJf   压缩文件名    需要压缩的文件


代码如下(示例):

//以xzip格式压缩etc目录到test目录,压缩包名为/tar-xzip.tar
[root@localhost ~]# tar -cJf  /test/tar-xzip.tar   /etc
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ll  -h /test
总用量 68M
-rw-r--r--. 1 root root  11M 10月 31 14:41 tar-bzip.tar
-rw-r--r--. 1 root root  12M 10月 31 14:36 tar-gzip.tar
-rw-r--r--. 1 root root  38M 10月 31 14:14 tar.tar
-rw-r--r--. 1 root root 8.3M 10月 31 14:46 tar-xzip.tar


4424e4265653483ca3c761cf3d5f94bc.png


 如图所示,各种压缩方法的压缩文件后的大小有所不一样,当我们压缩的时候明显感觉使用不同的方法压缩文件,等待的时间也是不一样的,压缩时间和压缩比例成正比,压缩后的文件大小越小,压缩所需要的时间越长,在生产环境下,我们一般追求速率,一般选择压缩时间短的压缩方法进行对文件的压缩。


解包解压文件


简介


打包压缩后的文件不是目录了是文件用cat查看会乱码,不是目录是无法用命令进入到里面的,这个时候我们需要对压缩文件进行解包解压操作。


解压缩(解压到当前目录)


命令:tar   -xf    压缩包名称


代码如下(示例):

//进入/test目录
[root@localhost ~]# cd /test
[root@localhost test]# pwd
/test
//解压tar-gzip到当前目录
[root@localhost test]# tar -xf  /test/tar-gzip.tar
//查看当前目录信息,etc解压成功
[root@localhost test]# ll
总用量 69240
drwxr-xr-x. 140 root root     8192 10月 20 15:18 etc
-rw-r--r--.   1 root root 10663380 10月 31 14:41 tar-bzip.tar
-rw-r--r--.   1 root root 12337613 10月 31 14:36 tar-gzip.tar
-rw-r--r--.   1 root root 39188480 10月 31 14:53 tar.tar
-rw-r--r--.   1 root root  8688348 10月 31 14:46 tar-xzip.tar
//切换到tartest目录
[root@localhost test]# cd /tartest
[root@localhost tartest]# pwd
/tartest
//解压tar-gzip到当前目录
[root@localhost tartest]# tar -xf  /test/tar-gzip.tar
//查看当前目录信息,解压文件成功
[root@localhost tartest]# ll
总用量 12
drwxr-xr-x. 140 root root 8192 10月 20 15:18 etc


如代码所示,切换不同的目录解压文件,解压后的文件到了当前所在目录。


解压缩(指定解压到的目录)


命令:tar   -xf   需要接下的压缩包  -C  需要解压到的路径


代码如下(示例):

//创建两个新的文件夹
[root@localhost tartest]# mkdir /tartest1
[root@localhost tartest]# mkdir /tartest2
//解压tar-bzip.tar到tartest1目录中
[root@localhost tartest]# tar -xf  /test/tar-bzip.tar  -C /tartest1
//查看tartest1目录,指定解压路径成功
[root@localhost tartest]# ll /tartest1
总用量 12
drwxr-xr-x. 140 root root 8192 10月 20 15:18 etc
//解压tar-bzip.tar到tartest2目录中
[root@localhost tartest]# tar -xf  /test/tar-bzip.tar  -C /tartest2
//查看tartest2目录,指定解压路径成功
[root@localhost tartest]# ll /tartest2
总用量 12
drwxr-xr-x. 140 root root 8192 10月 20 15:18 etc


如代码所示,指定解压路径后,解压后的文件会自动到指定的路径中。


总结


 本篇文章主要学习了解压缩原理,压缩的好处可以节省空间,学习压缩解压文件的操作,并且需要注意压缩选项的字母顺序不能乱否则会报错操作失败。



相关文章
|
24天前
|
Linux
Linux中将文件解压到指定目录
Linux中将文件解压到指定目录
|
4天前
|
存储 Linux Windows
Linux zip命令:压缩文件或目录
我们经常会在 Windows 系统上使用 “.zip”格式压缩文件,其实“.zip”格式文件是 Windows 和 Linux 系统都通用的压缩文件类型,属于几种主流的压缩格式(zip、rar等)之一,是一种相当简单的分别压缩每个文件的存储格式,本节要讲的 zip 命令,类似于 Windows 系统中的 winzip 压缩程序,其基本格式如下: [root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表 注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩时使用。 下面给大家举几个例子。 【例 1】zip 命令的基本使用。 [r
18 0
Linux zip命令:压缩文件或目录
|
11天前
|
存储 Linux
Linux专栏08:Linux基本指令之压缩解压缩指令
Linux专栏08:Linux基本指令之压缩解压缩指令
28 4
|
15天前
|
Linux
【Deepin 20系统】Linux系统批量解压*.gz文件(不是.tar.gz)
在Deepin 20 Linux系统中如何使用命令行批量解压*.gz文件,提供了具体的命令示例,并简要提及了批量解压*.tar.gz和*.tar.bz2文件的方法。
29 2
|
16天前
|
存储 算法 Linux
.bz2是什么格式的文件?Linux如何解压这种类型的文件?
【8月更文挑战第3天】.bz2是什么格式的文件?Linux如何解压这种类型的文件?
13 1
|
2月前
|
存储 Linux 数据安全/隐私保护
linux解压zip文件命令
linux解压zip文件命令
|
1月前
|
Linux Shell
Linux中tar归档命令、zip压缩、gzip压缩、bzip2压缩
Linux中tar归档命令、zip压缩、gzip压缩、bzip2压缩
|
2月前
|
存储 Linux 程序员
Linux解压Zip文件命令详解
Linux解压Zip文件命令详解
|
10月前
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
47 0
|
3月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法