文件的压缩打包

Posted 雾里屿伦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件的压缩打包相关的知识,希望对你有一定的参考价值。

压缩包格式

Windows:
.zip
.tar
.tar.gz
.gz
_______________
.rar
.7z
.bz
.bz2
.xz

为什么使用压缩

1.文件或目录太大,需要压缩传输
2.以后学的服务安装包都需要解压

压缩格式及命令

格式

Linux命令(压缩工具)

.zip

zip

.gz

gzip只能压缩文件,会删除源文件(通常配合tar使用)

.tar

tar

.tar.gz

tar、gzip(先使用tar命令归档打包,然后使用gzip压缩)

压缩命令-gzip

# 1.安装gzip压缩工具命令
[root@localhost <sub>]# yum install -y gzip

# 2.gzip命令使用
gzip 普通文件名
-r:递归压缩

# 3.解压命令
gzip -d 压缩包名

# 特性
1.压缩文件后,源文件不存在
2.只能压缩文件,不能压缩目录
3.压缩后,压缩包的位置在源文件的目录下
4.压缩后可以直接查看文件内容zcat
5.一个压缩包中,只会有一个文件
6.解压后,压缩包没了,只剩下源文件

## 举例
# 创建文件
[root@localhost </sub>]# echo 123 > lala
# 压缩lala文件
[root@localhost <sub>]# gzip lala
# 查看文件
[root@localhost </sub>]# ll
-rw-r--r--. 1 root root 29 Apr 18 13:46 lala.gz
# 查看文件类型
[root@localhost <sub>]# file lala.gz
lala.gz: gzip compressed data, was "lala", from Unix, last modified: Mon Apr 18 13:46:56 2022
# 查看gzip压缩后的文件内容
[root@localhost </sub>]# zcat lala.gz
123
# 解压文件
[root@localhost <sub>]# gzip -d lala.gz
# 查看文件
[root@localhost </sub>]# ll
-rw-r--r--. 1 root root 4 Apr 18 13:46 lala

压缩命令-zip

# 1.安装zip和unzip命令
[root@localhost <sub>]# yum install -y zip
[root@localhost </sub>]# yum install -y unzip

# 2.zip命令
zip 压缩包名 文件
[root@localhost <sub>]# zip lala haha1 haha2 haha3

# 3.解压命令
unzip 压缩包名
[root@localhost </sub>]# unzip lala.zip
Archive: lala.zip
replace haha1? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

# 选项
-r:递归压缩,包括目录下的所有文件
[root@localhost <sub>]# zip -r lala.zip lala/
adding: lala/ (stored 0%)
adding: lala/lala1 (stored 0%)
adding: lala/lala2 (stored 0%)
adding: lala/lala3 (stored 0%)
-l:查看压缩包里面都有哪些文件
[root@localhost </sub>]# unzip -l lala.zip
Archive: lala.zip
Length Date Time Name
--------- ---------- ----- ----
0 04-18-2022 14:17 lala/
0 04-18-2022 14:17 lala/lala1
0 04-18-2022 14:17 lala/lala2
0 04-18-2022 14:17 lala/lala3
--------- -------
0 4 files
-d:指定解压路径
[root@localhost <sub>]# unzip lala.zip -d /opt/

# 特性
1.压缩文件后,源文件存在
2.可以指定压缩后保存的路径
3.可以压缩目录,也可以压缩文件,也可以指定多个文件一起压缩
4.压缩目录需要加选项,如果不加,压缩后只有一个空目录,没有里面的文件
5.解压后,压缩包不会消失,如果同一目录下出现同名文件则会询问是否要覆盖

## 举例
# 压缩文件
[root@localhost </sub>]# zip haha.zip haha1
# 压缩并指定位置
[root@localhost <sub>]# zip /opt/lala.zip haha1 haha2
# 压缩目录为zip包
[root@localhost </sub>]# zip -r lala.zip lala/
# 解压zip文件包,默认解压至当前目录
[root@localhost <sub>]# unzip lala.zip
Archive: lala.zip
replace lala/lala1? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
# 解压zip文件包,可以用-d指定解压路径
[root@localhost </sub>]# unzip lala.zip -d /opt/

压缩命令-tar

  tar命令本身是归档
# 选项
c:归档
f:指定包名
z:使用gzip把归档文件压缩
v:显示压缩、解压的过程
x:解压归档文件
C:指定解压的位置
t:查看压缩包里的文件都有哪些
j:使用bzip2压缩文件
J:压缩成.xz包
X:排除指定的文件
--exclude:排除指定文件

# 特性
1.压缩文件后源文件存在
2.目录和文件都可以压缩
3.压缩后,压缩包的位置可以指定任意目录
[root@localhost <sub>]# tar zcf /usr/local/cyr.tgz /etc /opt /tmp
4.可以查看压缩包里有哪些文件,但是查看不了文件的内容
[root@localhost </sub>]# tar tf klm.tgz
5.一个压缩包中,可以有多个文件或目录
6.解压后,压缩包还在,源文件也可以随意指定路径 -C
7.常用打包与压缩组合(想解压要用对应的解压方式否则报错)
使用zcf压缩 ,zxf解压
使用jcf压缩 ,jxf解压
使用Jcf压缩 ,Jxf解压
万能解压命令:xf 查看压缩包内容:tf
# 注意
1.tar命令在解压开文件时,如果有文件名冲突,则不会询问,直接覆盖
2.tar命令,在打包时,会自动删除绝对路径的"/"
3.以后打包,尽量使用相对路径,cd到需要打包目录或文件的上级目录
[root@localhost <sub>]# cd /
[root@localhost /]# tar zcf /usr/local/cyr.tgz opt/


## 举例
# zcf压缩举例
[root@localhost </sub>]# tar zcf klm.tar.gz /tmp
1)先归档
[root@localhost <sub>]# tar cf klm.tar /tmp
[root@localhost </sub>]# ll
-rw-r--r--. 1 root root 10240 Apr 18 17:02 klm.tar
2)再使用gzip压缩
[root@localhost <sub>]# gzip klm.tar
[root@localhost </sub>]# ll
-rw-r--r--. 1 root root 424 Apr 18 17:02 klm.tar.gz

# -C指定解压的路径
[root@localhost <sub>]# tar zxf klm.tgz -C /opt

# -X:排除指定文件
[root@localhost </sub>]# tar zcf klm.tgz -X cyr.txt /tmp

# --exclude排除指定文件
[root@localhost ~]# tar zcf klm.tgz --exclude=haha1 /tmp

以上是关于文件的压缩打包的主要内容,如果未能解决你的问题,请参考以下文章

文件压缩打包

文件压缩打包

文件压缩打包

文件的压缩打包

Windows面试题总结

Linux打包和压缩