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


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


总结


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



相关文章
|
11月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
9月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
1453 13
|
10月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
287 16
|
11月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
297 28
|
10月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
171 4
|
11月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
2452 12
|
12月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
619 19
|
10月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
378 6
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)