linux系统压缩打包与解压缩还原文件
  Qn0V923SdTA7 2023年11月13日 23 0


一、Linux系统常见压缩包格式

1、常见的压缩格式有 .zip .rar 、.tar 、.gz 、.bz2 等。不同的压缩格式需要用不同的压缩命令和工具来处理。

2、在Linux系统中 .tar 为标准格式的压缩和解压缩格式,用系统中自带的命令   tar  来处理,不需要另外安装命令

3、Linux系统要与其它系统交换文件,所以也需要处理一些windows系统中的压缩文件,比如我们很熟悉的zip的rar格式的文件,但是,可能需要另外安装工具。

把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输非常有用。

打包和压缩的概念

● 打包是指将一大堆文件或目录变成一个文件

● 压缩则是将一个大的文件变成一个小文件


Linux中有的工具只打包不压缩,有的工具只压缩,不负责打包,也有打包压缩一条龙服务的,这就使得问题变得复杂,你得小心分辨。


选择工具要兼顾速度与效率,有时候,甚至可以先用一个工具打包,再用一个工具压缩。


有一些压缩工具只能对一个单一的文件进行压缩,你得先将一大堆文件打包成一个(tar命令),再用压缩程序进行压缩(gzip 或者 bzip2命令)


".tar " 格式(打包不会压缩)

".gz" 格式(不能打包,只压缩)

".bz2" 格式(不能压缩目录)

".tar.gz" 和 ".tar.bz2" 格式(打包压缩)

二、常用命令

(一)tar命令

tar命令可以用于打包和解开打包文件,它是Linux系统自带的命令,不需要另外安装。

它不压缩文件

 tar命令常用选项如下:

-c 或 --create:建立新的打包备份文件
-x 或 --extract 或 --get:从备份文件中还原文件
-v 或 --verbose:显示压缩、解压缩详细过程

-z 或 --gzip 或 --ungzip:通过gzip指令处理备份文件

-f :指定文件名,不论是压缩还是解压缩都要携带该选项

-j 指定要解压的文件是.tar.bz2类型的文件,当解压.tar.bz2的压缩包时必须携带该选项

-C 表示指定压缩或解压缩后放置的目录,如果没有此参数则默认为当前目录

-t 或 --list:列出备份文件的内容

在这里,要特别注意的是,tar命令是Linux中少数几个命令参数前不需要加短杠的命令。

tar命令使用示例:

1. 打包文件

只打包不压缩

把 /home 下面的所有文件打包,   命令为:

tar  -cvf  home   /home

先说选项  -cvf

就是c 创建一个新的打包文件,v 显示创建过程,f 指定创建后的包文件名

这里的打包后的文件名是 home

要打包的源文件是目录  /home  中的所有文件

含义就是:把根目录下的home目录中的所有文件打包成一个文件 home

那最后打包成的文件home放到哪里的呢?其实是放在你的当前目录中

linux系统压缩打包与解压缩还原文件_压缩包


我们不得不说,上面对打包后的文件命名是不好的,因为我们看不出它是一个包文件,正确的方法是命名成home.tar,再来做一次:

tar  -cvf  home.tar   /home

linux系统压缩打包与解压缩还原文件_压缩包_02

再查看,如上图,出现home.tar  ,与home文件大小一样。

2. 还原包文件

只需要把选项中的 -c  换成  -x

linux系统压缩打包与解压缩还原文件_压缩包_03

tar  -xvf  home.tar

上面的命令是把  home.tar 包文件还原成原来的 home 目录,目录会放在哪里呢?还是在当前目录下,不过刚才我们刚好有一个文件也弄成了home,不允许一个目录与文件同名,它自动删除了那个文件,再把home目录放上。可以,ll  home 查看是不是与根目录下那个相同呢?

如果你要指定把还原出来的home目录,放到指定的位置,可以在后面加上:

-C  指定的目录

比如:

tar  -xvf  home.tar  -C  /root/test    #指定还原到 /root/test 中去

注意,-C  是大写字母

3. 查看包内的文件

tar  -tf   home.tar

这个是不还原,只是测试  test

(二)压缩成  .gzp 和 .bz2 格式的文件

前面的tat命令没有对文件home.tar压缩,可以用gzip 或者 bzip2命令进一步压缩它,缩小文件体积

如果没有安装,必须先安装gzip 和 bzip2,安装命令:

yum install -y gzip
yum install -y bzip2

1. gzip

gzip  home.tar

linux系统压缩打包与解压缩还原文件_解压缩_04

原来的home.tar文件不见了,变成了home.tar.gz体积变小了。

要还原成压缩前的文件 home.tar 用下面的命令

gzip  -d  home.tar.gz

2. bzip2  

如果执行下面的命令

bzip2  home.tar

原来的home.tar文件不见了,变成了home.tar.bz2体积变小了。

要还原成压缩前的文件 home.tar 用下面的命令

bzip2  -d  home.tar.bz2

(三)打包压缩、还原解压一步到位

只打包一个文件,不压缩

tar  -cvf  home.tar   /home


1. 打包并压缩一个文件(自动调用gzip压缩)

加  -z  选项

tar  -zcvf  home.tar.gz   /home

2. 打包并压缩一个文件(自动调用bzip2压缩)

加  -j  选项

tar  -jcvf  home.tar.bz2   /home

3. 解压缩文件.tar.gz

tar  -zxvf  home.tar.gz

4. 解压缩文件.tar.gz

tar  -jxvf  home.tar.bz2

上面的选项中,-c  是创建打包文件    -x  是还原解压

只需要把选项中的 -c  换成  -x

就变成相反的操作

另外上面的选项中   -f  是指定文件名,是必不可少

-v  可以看到详细的过程

(四)zip和unzip命令

想要进行压缩和解压缩zip,则必须先安装压缩和解压zip的软件,执行命令如下所示:

yum install -y zip
yum install -y unzip


zip命令主要用于将文件和文件夹压缩成zip格式的压缩包,其常用参数如下:

-r 表示递归压缩,当压缩文件夹时加上-r参数表示连同文件夹下的子文件夹和文件一起压缩到压缩包内。

-v 表示压缩过程显示详细信息

-u 表示更新文件

-d 表示从压缩包中删除文件

将文件夹压缩成zip格式命令如下:

zip  -rv   home.zip   /home


unzip命令主要用于解压zip格式的压缩包,其常用参数如下:

-d 指定解压后的目录

unzip解压命令如下:

unzip home.zip

unzip命令后面直接跟要解压缩的zip文件即可。

(五)unar

rar不是Linux系统默认支持的压缩格式,因此针对rar格式的压缩包,压缩和解压缩过程比较复杂,需要安装第三方软件。

安装unar之后可以解压缩rar格式的压缩包,安装该命令执行如下:

yum install -y unar

unar命令,其常用参数如下:

-p 表示携带密码压缩

-o 表示压缩到指定位置

简单解压rar压缩包命令:

unar test.rar

更多的综合举例:

打包多个文件,不压缩

tar -cvf  nczy.tar   1.txt    2.txt    3.txt 

打包并压缩一个文件(使用gzip压缩)

tar -zcvf nczy.tar.gz nczy.txt 

打包并压缩一个文件(使用bzip2压缩)

tar -jcvf nczy.tar.bz2 nczy.txt 

 在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。

列出打包压缩文件里面的内容

tar -ztvf nczy.tar.gz 

 由于我们使用gzip压缩的nczy.tar.gz,所以要查阅nczy.tar.gz包内的文件时,就得要加上z这个选项了

tar.gz解压缩

tar -xzvf nczy.tar.gz 

tar.gz解压缩到/tmp目录

tar -xzvf nczy.tar.gz -C /tmp 

只解压nczy.tar.gz里面的1.txt 和 2.txt

tar -zxvf nczy.tar.gz 1.txt 2.txt

压缩文件并保留其权限

tar -zcpvf nczy.tar.gz 1.txt 2.txt 3.txt 4.txt 

 这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。

在/etc当中,比2021/01/01新的文件才备份

tar -N "2021/01/01" -zcvf etc.tar.gz /etc 

bzip2 压缩,查看,解压

● 压 缩:tar -jcvf nczy.tar.bz2 nczy

● 查 询:tar -jtvf nczy.tar.bz2

● 解压缩:tar -jxvf nczy.tar.bz2 -C test



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  ZUtP41E5P3ln   2023年11月02日   53   0   0 官网压缩包linux
  N6qfE06QLZwH   2023年11月02日   59   0   0 官网redis压缩包
Qn0V923SdTA7