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


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


总结


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



相关文章
|
12天前
|
存储 Linux Shell
Linux|Transfer.sh 轻松实现文件共享
Linux|Transfer.sh 轻松实现文件共享
24 2
Linux|Transfer.sh 轻松实现文件共享
|
26天前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
75 34
|
5天前
|
Linux 网络安全 虚拟化
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
80 1
|
21天前
|
Linux
Linux文件与目录的日常
目录的切换 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd - / cd..“); 如果,想快速切换,追原始的目录可以(”cd --“); 查看目录及文件
38 14
|
16天前
|
Linux Shell
Linux 将所有文件和目录名重命名为小写
Linux 将所有文件和目录名重命名为小写
24 3
|
21天前
|
Linux
Linux压缩与解压“助手”
gzip压缩解压 因为都是系统自带的我们不需要安装; ls 看一下目录当前的文件,创建一个 touch 123.txt 文件; 原文件消失,压缩解压 gzip 进行压缩,(“ gzip 123.txt ”),这样就压缩完毕了; gzip 进行解压,(“ gzip -d 123.txt.gz”),这样就解压完毕了; 原文件保留,gzip -k 123.txt、gzip -dk 123.txt.gz ;
36 9
|
10月前
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
102 1
|
10月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
10月前
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
91 0
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
80 0