Linux文件压缩包

寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述Linux文件压缩包相关的知识,希望能为你提供帮助。
目录:
文件压缩包
压缩包格式
压缩命令-gzip
压缩命令-zip
压缩命令-tar
--------------------------------------------------------------------------------
压缩包格式
windows:
.zip
.tar
.tar.gz
.gz
------------
.rar
.7z
.bz
.bz2
.xz
--------------------------------------------------------------------------------
为什么使用压缩
1.文件或目录太大,需要压缩传输
2.以后学的服务安装包都需要解压
--------------------------------------------------------------------------------
压缩格式及命令

--------------------------------------------------------------------------------
压缩命令-gzip
# 1.安装gzip命令
#yum install -y gzip
# 2.gzip命令使用

gzip+普通文件名

-r:递归压缩

##举例
1)0 ? 15:53:06 root@jinnan,10.0.0.101:~ # gzip jin.txt
2)? 15:53:18 root@jinnan,10.0.0.101:~ # file jin.txt.gz
jin.txt.gz: gzip compressed data, was "jin.txt", from Unix, last
modified: Thu Apr 14 21:15:25 2022

##举例-r
0 ? 15:53:40 root@jinnan,10.0.0.101:~ # gzip -r /root
0 ? 15:54:43 root@jinnan,10.0.0.101:~ # ll
total 16
-rw-------. 1 root root 793 Mar 15 00:40 anaconda-ks.cfg.gz
-rw-r--r--. 1 root root 41 Apr 14 21:15 jin.txt.gz
-rw-r--r--. 1 root root 30 Apr 18 09:31 lijin.txt.gz
-rw-r--r--. 1 root root 47 Apr 14 21:15 nan.txt.gz
##特性:
1.压缩文件后,源文件不存在
2.只能压缩文件,不能压缩目录
3.压缩后,压缩包的位置在源文件的目录下
4.压缩后可以直接查看文件内容zcat
5.一个压缩包中,只会有一个文件
6.解压后,压缩包没了,只剩源文件
#3.解压命令
gzip -d 压缩包

##举例
15:55:37 root@jinnan,10.0.0.101:~ # gzip -rd /root
0 ? 15:55:43 root@jinnan,10.0.0.101:~ # ll
total 12
-rw-------. 1 root root 1448 Mar 15 00:40 anaconda-ks.cfg
-rw-r--r--. 1 root root 15 Apr 14 21:15 jin.txt
-rw-r--r--. 1 root root 0 Apr 18 09:31 lijin.txt
-rw-r--r--. 1 root root 21 Apr 14 21:15 nan.txt
--------------------------------------------------------------------------------
压缩命令-zip
# 1.安装zip和unzip命令
# yum install -y zip
# yum install -y unzip
# 2.zip命令

zip 压缩包名 文件

##举例
0 ? 15:58:45 root@jinnan,10.0.0.101:~ # zip jin.txt.zip jin.txt
adding: jin.txt (stored 0%)
0 ? 15:59:11 root@jinnan,10.0.0.101:~ # file jin.txt.zip
jin.txt.zip: Zip archive data, at least v1.0 to extract
0 ? 15:59:25 root@jinnan,10.0.0.101:~ # ls -ld jin.txt.zip
-rw-r--r--. 1 root root 179 Apr 18 15:59 jin.txt.zip

##压缩并指定位置
0 ? 16:01:46 root@jinnan,10.0.0.101:~ # zip /opt/jin.zip 1.txt 2.txt
3.txt
adding: 1.txt (stored 0%)
adding: 2.txt (stored 0%)
adding: 3.txt (stored 0%)
0 ? 16:02:14 root@jinnan,10.0.0.101:~ # ll /opt
total 4
-rw-r--r--. 1 root root 436 Apr 18 16:02 jin.zip
## 特性
1.压缩文件后,源文件存在
2.可以指定压缩后保存的路径
3.可以压缩目录,也可以压缩文件,也可以指定多个文件一起压缩
4.压缩目录需要加选项,如果不加,压缩后,只有一个空目录,没有里面的文件
5.解压后,压缩包不会消失,如果同一目录下出现同名文件则会询问是否要覆盖

##选项
-r:递归压缩,包括目录下的所有文件
0 ? 16:04:51 root@jinnan,10.0.0.101:~ # zip -r jin.zip jin
adding: jin/ (stored 0%)
adding: jin/4.txt (stored 0%)
adding: jin/5.txt (stored 0%)
adding: jin/6.txt (stored 0%)
0 ? 16:05:20 root@jinnan,10.0.0.101:~ # ll jin.zip
-rw-r--r--. 1 root root 596 Apr 18 16:05 jin.zip

##解压命令
unzip 压缩包名

:07:37 root@jinnan,10.0.0.101:~ # unzip jin.zip
Archive: jin.zip
replace jin/4.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
extracting: jin/4.txt
extracting: jin/5.txt
extracting: jin/6.txt

-l:查看压缩包里面都有哪些文件
6:09:04 root@jinnan,10.0.0.101:~ # unzip -l jin.zip
Archive: jin.zip
Length Date Time Name
--------- ---------- ----- ----
0 04-18-2022 16:04 jin/
0 04-18-2022 16:04 jin/4.txt
0 04-18-2022 16:04 jin/5.txt
0 04-18-2022 16:04 jin/6.txt
--------- -------
0 4 files

-d:指定解压路径
0 ? 16:10:17 root@jinnan,10.0.0.101:~ # unzip jin.zip -d /tmp
Archive: jin.zip
creating: /tmp/jin/
extracting: /tmp/jin/4.txt
extracting: /tmp/jin/5.txt
extracting: /tmp/jin/6.txt
--------------------------------------------------------------------------------
压缩命令-tar
tar 命令本身是归档
##选项
c:归档
f:指定压缩包名
z:使用gzip把归档文件压缩
v:显示压缩/解压过程
x:解压归档文件
C:指定解压的位置(路径)
t:查看压缩包里的文件都有哪些
j:使用bzip2压缩文件
J:压缩成.xz包
X:排除指定的文件
--exclude:排除指定的文件

##举例 zcf
0 ? 16:25:59 root@jinnan,10.0.0.101:~ # tar zcf tmp1.tgz /tmp
0 ? 16:27:41 root@jinnan,10.0.0.101:~ # file tmp1.tgz
tmp1.tgz: gzip compressed data, from Unix, last modified: Mon Apr 18
16:27:38 2022
1)先归档
0 ? 16:30:17 root@jinnan,10.0.0.101:~ # tar cf tmp1.tar /tmp
tar: Removing leading `/ from member names
2)在使用gzip压缩
0 ? 16:30:33 root@jinnan,10.0.0.101:~ # gzip tmp1.tar
0 ? 16:30:43 root@jinnan,10.0.0.101:~ # ll
total 4
-rw-r--r--. 1 root root 332 Apr 18 16:30 tmp1.tar.gz

##举例 xf(万能解压)
0 ? 16:30:46 root@jinnan,10.0.0.101:~ # tar xf tmp1.tar.gz
0 ? 16:33:13 root@jinnan,10.0.0.101:~ # ll
total 4
drwxrwxrwt. 10 root root 174 Apr 18 16:10 tmp
-rw-r--r--. 1 root root 332 Apr 18 16:30 tmp1.tar.gz

##举例 C
16:34:29 root@jinnan,10.0.0.101:~ # tar xfC tmp1.tar.gz /opt
0 ? 16:34:36 root@jinnan,10.0.0.101:~ # ll /opt
total 4
-rw-r--r--. 1 root root 436 Apr 18 16:02 jin.zip
drwxrwxrwt. 10 root root 174 Apr 18 16:10 tmp

##举例 t
0 ? 16:35:44 root@jinnan,10.0.0.101:~ # tar tf tmp1.tar.gz
tmp/
tmp/.ICE-unix/
tmp/.Test-unix/
tmp/.X11-unix/
tmp/.XIM-unix/
tmp/.font-unix/
tmp/vmware-root_6233-1714755028/
tmp/vmware-root_6171-1991517238/
tmp/jin/
tmp/jin/4.txt
tmp/jin/5.txt
tmp/jin/6.txt

##举例 j
0 ? 16:37:34 root@jinnan,10.0.0.101:~ # tar jcf tmp2.tar.bz2 /tmp
tar: Removing leading `/ from member names
0 ? 16:37:40 root@jinnan,10.0.0.101:~ # ll
total 8
-rw-r--r--. 1 root root 332 Apr 18 16:30 tmp1.tar.gz
-rw-r--r--. 1 root root 328 Apr 18 16:37 tmp2.tar.bz2

#举例 X
6:42:07 root@jinnan,10.0.0.101:~ # tar zcf home1.tar.gz -X jin /home
tar: Removing leading `/ from member names
0 ? 16:42:28 root@jinnan,10.0.0.101:~ # tar tf home1.tar.gz
home/
home/home/
home/home/oldboy/
home/home/oldboy/test1/
home/jinnan/
home/jinnan/home
home/jinnan/jinnan
home/jinbo/
home/jinli/
home/tangli/
home/oldboy/
home/zls/

##举例--exclude
0 ? 16:47:45 root@jinnan,10.0.0.101:~ # tar zcf home1.tar.gz --
exclude=d --exclude=JIN /home
tar: Removing leading `/ from member names
0 ? 16:48:25 root@jinnan,10.0.0.101:~ # tar tf home1.tar.gz
home/
home/home/
home/home/oldboy/
home/home/oldboy/test1/
home/jinnan/
home/jinnan/home
home/jinnan/jinnan
home/jinbo/
home/jinli/
home/tangli/
home/oldboy/
home/zls/

## 特性
1.压缩文件后,源文件存在
2.目录和文件都可以压缩
3.压缩后,压缩包的位置可以指定任意目录
# tar zcf /usr/local/zls.tar.gz /etc /opt /tmp
4.可以查看压缩包里有哪些文件,但是查看不了文件内容
# tar tf /usr/local/zls.tar.gz
5.一个压缩包中,可以有多个文件或目录
6.解压后,压缩包还在,源文件也可以随意指定路径 -C
7.使用zcf压缩,zxf解压
使用jcf压缩,jxf解压
使用Jcf压缩,Jxf解压
万能解压命令:xf
## 注意:
【Linux文件压缩包】1.tar命令在解压开文件时,如果有文件名冲突,则不会询问,直接覆盖
2.tar命令,在打包时,会自动删除绝对路径的"/"(ar: Removing leading `/ from
member names)
3.以后打包,尽量使用相对路径,cd到需要打包目录或文件的上级目录
0 ? 16:50:06 root@jinnan,10.0.0.101:~ # cd /home
0 ? 16:51:13 root@jinnan,10.0.0.101:/home # tar zcf /root/home1.tar.
0 ? 16:51:28 root@jinnan,10.0.0.101:/home # ll /root
total 4
-rw-r--r--. 1 root root 148 Apr 18 16:51 home1.tar.gz

    推荐阅读