文件压缩打包

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.gz

tar.gzip

压缩命令-gzip

# 1.安装gzip命令
[root@localhost ~]# yum install -y gzip

# 2.gzip命令使用
gzip 普通文件名

-r:递归压缩
gzip -r /root/
会压缩/root/下的所有文件各压缩成一个压缩文件

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

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

查看压缩包格式:gzip text
file +文件名

压缩命令-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 111.zip 2.txt 3.txt 4.txt
adding: 2.txt (stored 0%)
adding: 3.txt (stored 0%)
adding: 4.txt (stored 0%)

## 压缩并指定位置
[root@localhost </sub>]# zip /opt/222.zip -r 2.txt 3.txt 4.txt
adding: 2.txt (stored 0%)
adding: 3.txt (stored 0%)
adding: 4.txt (stored 0%)

[root@localhost <sub>]# unzip -l /opt/222.zip
Archive: /opt/222.zip
Length Date Time Name
--------- ---------- ----- ----
2 04-18-2022 10:53 2.txt
2 04-18-2022 10:53 3.txt
0 04-18-2022 17:23 4.txt
--------- -------
4 3 files

# 选项
-r:递归压缩,包括目录下的所有文件

[root@localhost </sub>]# zip -r 111.zip 2.txt 3.txt 4.txt
updating: 2.txt (stored 0%)
updating: 3.txt (stored 0%)
updating: 4.txt (stored 0%)

-l:查看压缩包里面都有哪些文件

[root@localhost <sub>]# unzip -l 111.zip
Archive: 111.zip
Length Date Time Name
--------- ---------- ----- ----
2 04-18-2022 10:53 2.txt
2 04-18-2022 10:53 3.txt
0 04-18-2022 17:23 4.txt
--------- -------
4 3 files

-d:指定解压路径
[root@localhost </sub>]# unzip 111.zip -d /tmp
Archive: 111.zip
extracting: /tmp/2.txt
extracting: /tmp/3.txt
extracting: /tmp/4.txt

-T 检验文件的完整性

# 解压命令
unzip 压缩包名
[root@localhost ~]# unzip 111.zip
Archive: 111.zip
replace 2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:

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

压缩命令-tar

tar命令本身是归档
语法:
tar +选项 +包名+文件名
#选项不用加-:
c:归档
f:指定包名
z:使用gzip把归档文件压缩
v:显示压缩/解压的过程
x:解压归档文件
-C:指定解压的位置(路径)
t:在不解压情况下查看压缩包里的文件都有哪些
j:以bzip2压缩文件归档
-J:压缩成xz包
-X:排除指定的文件
-P:压缩时带绝对路径,解压时按绝对路径解压
h:打包软链接文件
--excludel:排除指定文件或目录
--hard-dereference:打包硬链接文件

#把/etc下的目录做一下归档 放在333.tar
tar cf 包名 要压缩的文件
[root@localhost <sub>]# tar cf 333.tar /etc/
tar: Removing leading `/ from member names
[root@localhost </sub>]# ll
total 29304
-rw-r--r--. 1 root root 29982720 Apr 18 18:13 333.tar
#查看文件真实占用磁盘大小
[root@localhost <sub>]# du -sh /etc/
32M /etc/
[root@localhost </sub>]# du -sh 333.tar
29M 333.tar

#压缩包可以指定路径
[root@localhost <sub>]# tar cf /opt/444.tar /tmp
tar: Removing leading `/ from member names
[root@localhost </sub>]# du -sh /opt/444.tar
20K /opt/444.tar
#属于归档文件
[root@localhost <sub>]# file /opt/444.tar
/opt/444.tar: POSIX tar archive (GNU)

###zcf举例
先归档cf :
[root@localhost </sub>]# tar cf tmp2.tar /t
再使用gzip压缩
[root@localhost <sub>]# gzip tmp2.tar

[root@localhost </sub>]# tar zcf /opt/555.tar /tmp
tar: Removing leading `/ from member names
[root@localhost <sub>]# ll /opt
total 28
-rw-r--r--. 1 root root 20480 Apr 18 18:33 444.tar
-rw-r--r--. 1 root root 463 Apr 18 18:42 555.tar

# 同一个文件 cf归档文件和 zcf压缩文件大小对比
[root@localhost </sub>]# file /opt/444.tar
/opt/444.tar: POSIX tar archive (GNU)

[root@localhost <sub>]# file /opt/555.tar
/opt/555.tar: gzip compressed data, from Unix, last modified: Mon Apr 18 18:42:20 2022


[root@localhost </sub>]# du -sh /opt/444.tar
20K /opt/444.tar
[root@localhost <sub>]# du -sh /opt/555.tar
4.0K /opt/555.tar

## v举例 显示压缩过程
[root@localhost </sub>]# tar zcvf 666.tgz /tmp
tar: Removing leading `/ from member names
/tmp/
/tmp/.font-unix/
/tmp/.ICE-unix/
/tmp/.X11-unix/

[root@localhost <sub>]# du -sh 666.tgz
4.0K 666.tgz

# 打包压缩文件
[root@localhost </sub>]# tar zcf 777.tgz /tmp
tar: Removing leading `/ from member names
[root@localhost <sub>]# ll
total 4
-rw-r--r--. 1 root root 463 Apr 18 19:09 777.tgz

# gzip解压成归档文件
[root@localhost </sub>]# gzip -d 777.tgz
[root@localhost <sub>]# ll
total 20
-rw-r--r--. 1 root root 20480 Apr 18 19:09 777.tar

# x 把归档文件解压成目录
[root@localhost </sub>]# tar xf 777.tar
[root@localhost <sub>]# ll
total 20
-rw-r--r--. 1 root root 20480 Apr 18 19:09 777.tar
drwxrwxrwt. 10 root root 188 Apr 18 17:52 tmp

[root@localhost </sub>]# tar zxf 666.tgz
[root@localhost <sub>]# ll
total 4
-rw-r--r--. 1 root root 463 Apr 18 19:00 666.tgz
drwxrwxrwt. 10 root root 188 Apr 18 17:52 tmp

## v解压过程
[root@localhost </sub>]# tar zcf 888.tgz /tmp
tar: Removing leading `/ from member names
[root@localhost <sub>]# ll
total 4
-rw-r--r--. 1 root root 463 Apr 18 19:23 888.tgz
[root@localhost </sub>]# tar zxvf 888.tgz
tmp/
tmp/.font-unix/
tmp/.ICE-unix/
tmp/.X11-unix/
## C:指定解压的位置(路径)
[root@localhost <sub>]# tar zxf 888.tgz -C /opt/
[root@localhost </sub>]# ll /opt
drwxrwxrwt. 10 root root 188 Apr 18 17:52 tmp

# 一个压缩包中,可以有多个文件或目录
[root@localhost <sub>]# tar zcf /usr/local/999.tar.gz /etc /opt /tmp
tar: Removing leading `/ from member names
[root@localhost </sub>]# ll /usr/local
total 10160
-rw-r--r--. 1 root root 10400058 Apr 18 20:22 999.tar.gz

## t:查看压缩包里的文件都有哪些
[root@localhost <sub>]# tar tf /usr/local/999.tar.gz

## j
root@localhost </sub>]# tar jcf aaa.tar.bz2 /tmp

## -X 不需要的文件名写到打一个文件中(1.txt)排除指定的文件
[root@localhost <sub>]# tar zcf bbb.paichu.tgz -X 1.txt /tmp
[root@localhost </sub>]# tar tf bbb.paichu.tgz


## --exclude举例
[root@localhost <sub>]# ll /tmp
[root@localhost </sub>]# tar zcf yyy.exclude.tgz --exclude=4.txt /tmp
[root@localhost <sub>]# tar tf yyy.exclude.tgz

[root@localhost </sub>]# tar zcf nnn.exclude.tgz --exclude=3.txt --exclude=2.txt /tmp
[root@localhost <sub>]# tar tf nnn.exclude.tgz

## h
[root@localhost </sub>]# ll /tmp
lrwxrwxrwx. 1 root root 9 Apr 20 01:49 abc -> /root/abc

[root@localhost <sub>]# tar zchf habc.gz /tmp/abc
[root@localhost </sub>]# ll
-rw-r--r--. 1 root root 225 Apr 20 02:32 habc.gz

[root@localhost <sub>]# tar tf habc.gz
tmp/abc/
tmp/abc/1
tmp/abc/2


## 特性
1.压缩文件后,源文件存在
2.目录和文件都可以压缩
3.压缩后,压缩包的位置可以指定任意目录
文件压缩打包

文件压缩打包

文件压缩打包

文件的压缩打包

Windows面试题总结

Linux打包和压缩