linux中打包和压缩有什么区别

2024-12-29 00:03:05
推荐回答(3个)
回答1:

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。
和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。
压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了
"C语言中文网",那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。
由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,有方便在网络上传送。
如果你能够理解文件压缩的基本原理,那么很容易就能想到,对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩和无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式
mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩。
Linux下,常用归档命令有2个,分别是tar和dd(相对而言,tar的使用更为广泛);常用的压缩命令有很多,比如gzip、zip、bzip2等。

回答2:

打包就是把若干文件或文件夹放到一个tar文件中,但是不会压缩文件大小。
压缩就是在打包的基础上压缩文件的大小。

回答3:

很多人在学习云计算之初,都要学习Linux,云计算服务是部署在Linux系统中的。不过Linux涵盖的知识点非常多,你不仅要掌握各种操作命令,还要了解Linux文件的打包与压缩,接下来的杭州云计算入门课程就给大家简单分享。

在Linux系统中,通常我们使用的打包压缩工具有.tar.gz、.tar.bz2、.zip、gzip、bzip2只压缩文件和tar只打包文件。

tar
只打包文件
tar的打包解包:
tar cvf file.tar 被打包的文件
tar xvf file.tar -C /home 指定解压路径
不解压查看压缩包内的信息内容:
tar -tf dir1.tar.gz

gzip压缩解压:
gzip 源文件
gzip -d 压缩文件
gunzip 压缩文件
gzip -c file1 >/home/file1.gz 将文件压缩到指定位置(注意以.gz结尾)

bzip2
只压缩文件bzip2命令的压缩与解压
bzip2 源文件
bzip2 -d 压缩文件
bunzip2 压缩文件
bzip2 -c file1 >/opt/file1.bz2 将文件压缩到指定位置(注意以.bz2结尾)

打包压缩
tar与gzip命令结合可以实现文件打包压缩,
用gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
tar与bzip2命令结合也可以实现文件的打包压缩,
其扩展名一般用 xxx.tar.bz2

优缺点
bzip2有比较高的压缩比,相应的压缩用时也要久一些,占用的系统内存也更大;
gzip最大的优势就是压缩解压速度快,压缩比稍逊于bzip2;
临时性的压缩包尽量选择压缩速度快的格式,如.gz;
用于持久备份或存档的文件,尽量选择压缩比较大的格式,如.bz2。
最后,它们之间还有一些区别,tar可以打包文件和目录,而bzip2和gzip只能压缩文件。

在Linux中,软件安装的方式有三种:
一、源代码形式
1、绝大多数开源软件都是直接以原码形式发布的
2、源代码一般会被打包成.tar.gz的归档压缩文件
3、源代码需要编译成为二进制形式之后才能够运行使用
4、源代码基本编译流程:
1).configure 检查编译环境,这里可以通过--prefix等命令配置安装路径(好像)
2)make对源代码进行编译;
3)make insall 将生成的可执行文件安装到当前计算机中

二、RPM
1、源代码形式的特点:操作复杂、编译时间长、极易出现问题、依赖关系复杂
2、为了方便,RPM(redhat package manager)
3、RPM通过将代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。针对不同的系统设定不同的包
4、常用命令规范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64-rpm
5、使用rpm –i software.rpm(安装);
rpm -e software.rpm(卸载);
rpm –U software.rpm(升级形式安装);
rrpm –ivh(支持通过http\ftp协议形式安装)
-v 显示详细信息;-h显示进度条
查询功能:rpm –qa 列出全部已经安装的.rpm软件 rpm –qa |grep ***
三:YUM
1、rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,但是yum能解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:
1)自动解决依赖关系;2)可以对rpm进行分组,基于组进行安装操作;3)引入仓库概念,支持多个仓库;4)配置简单。
2、yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。
3、仓库的配置文件/etc/yum.repos.d目录下
4、使用:1)yum install 安装;
2)yum remove卸载;
3)yum update 升级制定软件
5、安装的时候,会下载软件包.Rpm在安装,所以用国内仓库。改变镜像源1)访问地址 2)点centos使用帮助;3)按步骤来
6、查询软件:可以使用yumsearch *
综上,yum 比rpm先进,但源码包比较全。