压缩的概念


什么是压缩包?

就是一个特殊的文件,将多个文件或者目录压缩成一个特殊的文件  


为什么要用压缩包?

减少占用的空间  

加快传输的速度


windows:

.zip     .rar

linux:

.zip .gz   .tar.gz


如果要想Windows和linux中的压缩包互相使用,建议使用.zip种类的压缩包


在Linux中压缩包的类型


.zip #根据zip命令进行打包压缩的

.gz #通过gzip命令进行压缩 只压缩文件,也会删除源文件

.bz2 #通过bzip进行压缩, 只压缩文件,也会删除源文件

.tar.gz #使用tar命令归档打包,然后使用gzip命令进行压缩

.tar.bz2 #使用tar命令归档打包,然后使用bzip命令进行压缩  

zip命令

     zip      #可以对文件和目录进行打包,需要指定压缩包的名称 ​[root@qls ~]# yum install -y zip unzip


zip #压缩的命令

选项:

-r #压缩目录

-q #静默输出,不显示压缩的过程



unzip #解压zip格式的压缩包

选项:

-l #查看压缩包中的列表信息

-q #静默输出,不显示解压的过程

-d #指定解压的目录


[root@qls ~]# ll
total 656
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services

#针对文件进行压缩打包
[root@qls ~]# zip services.zip   services
adding: services (deflated 80%)
[root@qls ~]# ll
total 792
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services
-rw-r--r-- 1 root root 136227 Jul 29 09:06 services.zip


#压缩目录时不加选项,只压缩目录本身
[root@qls ~]# zip etc.zip /etc
adding: etc/ (stored 0%)
[root@qls ~]# ll
total 796
-rw-r--r-- 1 root root    158 Jul 29 09:07 etc.zip
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services
-rw-r--r-- 1 root root 136227 Jul 29 09:06 services.zip
[root@qls ~]# unzip -l etc.zip
Archive: etc.zip
Length     Date   Time   Name
---------  ---------- -----   ----
       0  07-29-2020 08:56   etc/
---------                     -------
       0                     1 file
[root@qls ~]# unzip etc.zip
Archive: etc.zip
  creating: etc/
[root@qls ~]# ll
total 796
drwxr-xr-x 2 root root      6 Jul 29 08:56 etc
-rw-r--r-- 1 root root    158 Jul 29 09:07 etc.zip
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services
-rw-r--r-- 1 root root 136227 Jul 29 09:06 services.zip
[root@qls ~]# ll etc
total 0

[root@qls ~]# zip -r etc.zip /etc
[root@qls ~]# ll -h
total 13M
-rw-r--r-- 1 root root 12M Jul 29 09:10 etc.zip
-rw-r--r-- 1 root root 655K Jul 29 08:45 services
-rw-r--r-- 1 root root 134K Jul 29 09:06 services.zip
[root@qls ~]# du -sh /etc
31M /etc


#查看压缩包里面的文件
[root@qls ~]# unzip -l etc.zip


#静默输出
[root@qls ~]# zip -rq   etc1.zip /etc
[root@qls ~]# ll
total 24976
-rw-r--r-- 1 root root 12380952 Jul 29 09:13 etc1.zip
-rw-r--r-- 1 root root 12380952 Jul 29 09:10 etc.zip
-rw-r--r-- 1 root root   670293 Jul 29 08:45 services
-rw-r--r-- 1 root root   136227 Jul 29 09:06 services.zip


#解压
[root@qls ~]# unzip   etc.zip


#静默解压文件,将文件解压到指定的目录下面
[root@qls ~]# unzip -q etc.zip   -d /opt/
[root@qls ~]# ll /opt/
total 12
drwxr-xr-x 85 root root 8192 Jul 29 08:56 etc
-rw-r--r--  1 root root    0 Jul 28 12:09 file9


gzip命令​​​

gzip    #只能压缩文件,压缩文件的同时,会删除源文件,解压的时候,会删除压缩文件

选项:

-d #解压

-r #递归操作


[root@qls ~]# ll
total 656
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services

[root@qls ~]# gzip   services
[root@qls ~]# ll
total 136
-rw-r--r-- 1 root root 136088 Jul 29 08:45 services.gz


#使用zcat命令查看gzip压缩的文件
[root@qls ~]# zcat services.gz


#解压
[root@qls ~]# gzip -d services.gz
[root@qls ~]# ll
total 656
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services


#将目录下的所有都进行压缩处理
[root@qls ~]# gzip -r   /etc


#解压目录下的所有压缩包
[root@qls ~]# gzip -rd /etc

bzip2命令

bzip2   #只能压缩文件,压缩文件的同时,会删除源文件,解压的时候,会删除压缩文件

选项:

 -d    #解压

-k    #若要保留原始文件,请使用此参数

[root@qls ~]# yum install -y bzip2

#压缩
[root@qls ~]# bzip2 services
[root@qls ~]# ll
total 124
-rw-r--r-- 1 root root 123932 Jul 29 08:45 services.bz2

#解压
[root@qls ~]# bzip2 -d services.bz2
[root@qls ~]# ll
total 656
-rw-r--r-- 1 root root 670293 Jul 29 08:45 services


#查看bzip2压缩的文件
[root@qls ~]# bzcat   services.bz2

 

tar命令​不负责压缩,只负责归档打包​​

    选项   

      z       #使用gzip格式进行压缩 

      j       #使用bzip2格式进行压缩

 

    J       #使用xz格式进行压缩       

c #创建压缩包

v #显示过程

f #指定压缩包的名称


czf #打包压缩 tar.gz格式的压缩包

cjf #打包压缩 tar.bz2格式的压缩包 了解

cJf #打包压缩 tar.xz格式的压缩包 了解

t #查看压缩中的内容

tf #指定要查看的压缩包名称

x #解压

xf #解压指定的压缩包

-C #解压到指定的目录

h #打包软连接的真实路径

P #使用绝对路径打包

X #指定排除文件的列表文件

--exclude= #指定排除的文件

--exclude-from= #指定排除文件的列表



[root@qls ~]# ll
total 656
-rw-r--r-- 1 root root 670293 Jul 29 09:47 services
[root@qls ~]# tar czf services.tar.gz   services
[root@qls ~]# ll
total 792
-rw-r--r-- 1 root root 670293 Jul 29 09:47 services
-rw-r--r-- 1 root root 136200 Jul 29 09:48 services.tar.gz

[root@qls ~]# tar cjf services.tar.bz2 services
[root@qls ~]# ll
total 916
-rw-r--r-- 1 root root 670293 Jul 29 09:47 services
-rw-r--r-- 1 root root 124166 Jul 29 09:48 services.tar.bz2
-rw-r--r-- 1 root root 136200 Jul 29 09:48 services.tar.gz
[root@qls ~]# tar cJf services.tar.xz services
[root@qls ~]# ll
total 1016
-rw-r--r-- 1 root root 670293 Jul 29 09:47 services
-rw-r--r-- 1 root root 124166 Jul 29 09:48 services.tar.bz2
-rw-r--r-- 1 root root 136200 Jul 29 09:48 services.tar.gz
-rw-r--r-- 1 root root 100640 Jul 29 09:49 services.tar.xz

[root@qls ~]# tar czf etc.tar.gz   /etc
tar: Removing leading `/' from member names #删根的操作是正常的
[root@qls ~]# ll
total 10952
-rw-r--r-- 1 root root 10171684 Jul 29 09:56 etc.tar.gz



[root@qls ~]# tar tf services.tar.gz
services



[root@qls ~]# tar xf services.tar.gz
[root@qls ~]# ll
total 10952
-rw-r--r-- 1 root root 10171684 Jul 29 09:56 etc.tar.gz
-rw-r--r-- 1 root root   670293 Jul 29 09:47 services
-rw-r--r-- 1 root root   124166 Jul 29 09:48 services.tar.bz2
-rw-r--r-- 1 root root   136200 Jul 29 09:48 services.tar.gz
-rw-r--r-- 1 root root   100640 Jul 29 09:49 services.tar.xz
[root@qls ~]# tar xf etc.tar.gz
[root@qls ~]# ll
total 10964
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 10171684 Jul 29 09:56 etc.tar.gz
-rw-r--r--  1 root root   670293 Jul 29 09:47 services
-rw-r--r--  1 root root   124166 Jul 29 09:48 services.tar.bz2
-rw-r--r--  1 root root   136200 Jul 29 09:48 services.tar.gz
-rw-r--r--  1 root root   100640 Jul 29 09:49 services.tar.xz


[root@qls ~]# tar cjf etc.tar.bz2   /etc
tar: Removing leading `/' from member names
[root@qls ~]# tar cJf etc.tar.xz   /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 26808
-rw-r--r-- 1 root root  8994047 Jul 29 10:01 etc.tar.bz2
-rw-r--r-- 1 root root 10171684 Jul 29 09:56 etc.tar.gz
-rw-r--r-- 1 root root  7238084 Jul 29 10:01 etc.tar.xz
-rw-r--r-- 1 root root   670293 Jul 29 09:47 services
-rw-r--r-- 1 root root   124166 Jul 29 09:48 services.tar.bz2
-rw-r--r-- 1 root root   136200 Jul 29 09:48 services.tar.gz
-rw-r--r-- 1 root root   100640 Jul 29 09:49 services.tar.xz
[root@qls ~]# tar xf etc.tar.bz2 #解压的时候,自动识别压缩包的格式
[root@qls ~]# ll
total 26820
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root  8994047 Jul 29 10:01 etc.tar.bz2
-rw-r--r--  1 root root 10171684 Jul 29 09:56 etc.tar.gz
-rw-r--r--  1 root root  7238084 Jul 29 10:01 etc.tar.xz


[root@qls ~]# tar xf etc.tar.gz   -C /opt/
[root@qls ~]# ll /opt/
total 668
drwxr-xr-x 77 root root   8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 670293 Jul 29 09:47 services

​#显示打包过程
[root@qls ~]# tar czvf etc.tar.gz   /etc

​#显示解压过程
[root@qls ~]# tar xvf etc.tar.gz


[root@qls ~]# ll /bin -d
lrwxrwxrwx. 1 root root 7 Jul  6 02:13 /bin -> usr/bin
[root@qls ~]# tar czf bin.tar.gz /bin
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 9952
-rw-r--r--  1 root root      110 Jul 29 10:14 bin.tar.gz
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 10171684 Jul 29 10:04 etc.tar.gz
[root@qls ~]# tar xf bin.tar.gz
[root@qls ~]# ll
total 9952
lrwxrwxrwx  1 root root        7 Jul  6 02:13 bin -> usr/bin
-rw-r--r--  1 root root      110 Jul 29 10:14 bin.tar.gz
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 10171684 Jul 29 10:04 etc.tar.gz


​#打包软链接的真实路径
[root@qls ~]# tar czhf bin1.tar.gz /bin
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
[root@qls ~]# ll
total 36880
lrwxrwxrwx  1 root root        7 Jul  6 02:13 bin -> usr/bin
-rw-r--r--  1 root root 27573768 Jul 29 10:16 bin1.tar.gz
-rw-r--r--  1 root root      110 Jul 29 10:14 bin.tar.gz
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 10171684 Jul 29 10:04 etc.tar.gz



#打包的时候有个删根的操作   怎么避免这个删根的操作

#第一种   使用相对路径打包

[root@qls ~]# cd /  
[root@qls /]# tar czf /root/etc1.tar.gz   etc
[root@qls /]# ll /root
total 46852
dr-xr-xr-x  2 root root    20480 Jul 29 08:58 bin
-rw-r--r--  1 root root 27573768 Jul 29 10:16 bin1.tar.gz
-rw-r--r--  1 root root      110 Jul 29 10:14 bin.tar.gz
drwxr-xr-x 77 root root     8192 Jul 29 08:56 etc
-rw-r--r--  1 root root 10171684 Jul 29 10:19 etc1.tar.gz
-rw-r--r--  1 root root 10171684 Jul 29 10:04 etc.tar.gz

#真实打包场景

[root@qls ~]# cd / && tar czf /root/etc3.tar.gz   etc && cd -
/root
[root@qls ~]# ll
total 581012
dr-xr-xr-x  2 root root     20480 Jul 29 08:58 bin
-rw-r--r--  1 root root  27573768 Jul 29 10:16 bin1.tar.gz
-rw-r--r--  1 root root       110 Jul 29 10:14 bin.tar.gz
drwxr-xr-x 77 root root      8192 Jul 29 08:56 etc
-rw-r--r--  1 root root  10171684 Jul 29 10:19 etc1.tar.gz
-rw-r--r--  1 root root 347209728 Jul 29 10:22 etc2.tar.gz
-rw-r--r--  1 root root  10171684 Jul 29 10:22 etc3.tar.gz


#第二种方法   使用绝对路径打包   告诉系统不要删根

#使用绝对路径打包
[root@qls ~]# tar czPf etc4.tar.gz   /etc

#使用绝对路经解压
[root@qls ~]# tar xPf etc4.tar.gz


[root@qls ~]# cat /etc/services >> /opt/services
[root@qls ~]# ll /opt/
total 1744
drwxr-xr-x 77 root root    8192 Jul 29 08:56 etc
-rw-r--r--  1 root root     158 Jul 29 10:28 hosts
-rw-r--r--  1 root root 1340586 Jul 29 10:29 services
[root@qls ~]# tar xPf opt.tar.gz
[root@qls ~]# ll /opt/
total 672
drwxr-xr-x 77 root root   8192 Jul 29 08:56 etc
-rw-r--r--  1 root root    158 Jul 29 10:28 hosts
-rw-r--r--  1 root root 670293 Jul 29 09:47 services


#排除不需要打包的文件
[root@qls ~]# tar czf etc1.tar.gz /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 9936
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
[root@qls ~]# ll /etc/services
-rw-r--r-- 1 root root 670293 Jun  7  2013 /etc/services
[root@qls ~]# tar czf etc2.tar.gz   --exclude=/etc/services   /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 19740
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
-rw-r--r-- 1 root root 10036635 Jul 29 10:52 etc2.tar.gz
[root@qls ~]# tar tf etc2.tar.gz | grep services
etc/firewalld/services/


#排除多个文件
[root@qls ~]# tar czf etc3.tar.gz --exclude=/etc/services --exclude=/etc/passwd /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 29544
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
-rw-r--r-- 1 root root 10036635 Jul 29 10:52 etc2.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:54 etc3.tar.gz
[root@qls ~]# tar tf etc3.tar.gz | grep -E 'services|passwd'
etc/security/opasswd
etc/passwd-
etc/pam.d/passwd
etc/firewalld/services/


[root@qls ~]# tar czf etc4.tar.gz --exclude=/etc/{services,passwd}   /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 39348
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
-rw-r--r-- 1 root root 10036635 Jul 29 10:52 etc2.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:54 etc3.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:55 etc4.tar.gz


[root@qls ~]# cat paichu.list
/etc/fstab
/etc/group
/etc/hosts
/etc/passwd
/etc/services
[root@qls ~]# tar czfX   etc5.tar.gz   paichu.list   /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 49152
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
-rw-r--r-- 1 root root 10036635 Jul 29 10:52 etc2.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:54 etc3.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:55 etc4.tar.gz
-rw-r--r-- 1 root root 10033927 Jul 29 10:58 etc5.tar.gz
-rw-r--r-- 1 root root       59 Jul 29 10:57 paichu.list




[root@qls ~]# tar tf etc5.tar.gz | grep -Ew 'fstab|group|hosts|passwd|services'
etc/security/group.conf
etc/group-
etc/passwd-
etc/hosts.allow
etc/hosts.deny
etc/pam.d/passwd
etc/iproute2/group
etc/firewalld/services/



[root@qls ~]# tar czf etc6.tar.gz   --exclude-from=paichu.list   /etc
tar: Removing leading `/' from member names
[root@qls ~]# ll
total 58952
-rw-r--r-- 1 root root 10171949 Jul 29 10:51 etc1.tar.gz
-rw-r--r-- 1 root root 10036635 Jul 29 10:52 etc2.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:54 etc3.tar.gz
-rw-r--r-- 1 root root 10035297 Jul 29 10:55 etc4.tar.gz
-rw-r--r-- 1 root root 10033927 Jul 29 10:58 etc5.tar.gz
-rw-r--r-- 1 root root 10033927 Jul 29 11:01 etc6.tar.gz
-rw-r--r-- 1 root root       59 Jul 29 10:57 paichu.list


tar命令与find结合

[root@qls ~]# tar  czf  log1.tar.gz   `find  /var/log/  -type f  -name "*.log"`
tar: Removing leading `/' from member names
[root@qls ~]# tar czf log2.tar.gz   $(find /var/log/ -type f -name "*.log")
tar: Removing leading `/' from member names


#
xargs   把find命令查找出来的文件统一的赋值给了后面
[root@qls ~]# find  /var/log/  -type f  -name "*.log"  -exec  tar czf  log3.tar.gz  {}  ;
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names



#
当使用-exec时, 把find查找的文件是进行一个个赋值给{}的

[root@qls ~]# find /var/log/ -type f -name "*.log" | xargs tar czf   log4.tar.gz  

tar: Removing leading `/' from member name


[root@qls ~]# ll
total 916
-rw-r--r-- 1 root root 309155 Jul 29 11:09 log1.tar.gz
-rw-r--r-- 1 root root 309155 Jul 29 11:09 log2.tar.gz
-rw-r--r-- 1 root root    356 Jul 29 11:10 log3.tar.gz
-rw-r--r-- 1 root root 309155 Jul 29 11:10 log4.tar.gz

[root@qls ~]# tar tf log1.tar.gz  
var/log/tuned/tuned.log
var/log/audit/audit.log
var/log/anaconda/anaconda.log
var/log/anaconda/X.log
var/log/anaconda/program.log
var/log/anaconda/packaging.log
var/log/anaconda/storage.log
var/log/anaconda/ifcfg.log
var/log/anaconda/ks-script-3PCKae.log
var/log/anaconda/journal.log
var/log/boot.log
var/log/vmware-vmsvc.log
var/log/vmware-network.8.log
var/log/vmware-network.5.log
var/log/vmware-network.2.log
var/log/vmware-network.7.log
var/log/vmware-network.4.log
var/log/vmware-network.1.log
var/log/test.log
var/log/yum.log
var/log/vmware-network.9.log
var/log/nginx/error.log
var/log/nginx/access.log
var/log/vmware-network.6.log
var/log/vmware-network.3.log
var/log/vmware-network.log
[root@qls ~]# tar tf log3.tar.gz  
var/log/vmware-network.log




date命令



#显示系统时间


[root@qls ~]# date
Wed Jul 29 11:19:19 CST 2020


[root@qls ~]# date +%Y #世纪
2020
[root@qls ~]# date +%y #年代
20
[root@qls ~]# date +%m #月份
07
[root@qls ~]# date +%d #日期
29

[root@qls ~]# date +%Y-%m-%d
2020-07-29


[root@qls ~]# date +%F #显示日期
2020-07-29


[root@qls ~]# date +%y-%m-%d
20-07-29


[root@qls ~]# date +%H #时
11
[root@qls ~]# date +%M #分
23
[root@qls ~]# date +%S #秒
24
[root@qls ~]# date
Wed Jul 29 11:23:28 CST 2020
[root@qls ~]# date +%H:%M:%S
11:23:43

[root@qls ~]# date +%T #显示时间
11:24:08

[root@qls ~]# date +%F-%T
2020-07-29-11:24:34

[root@qls ~]# date +%w #周几
3
[root@qls ~]# date +%W #今年第几周
30


[root@qls ~]# date +%s #距离1970年1月1日0分0秒过来多少秒
1595993167


选项:

-d #自定义日期


-s #修改日期   时间



[root@qls ~]# date +%F
2020-07-29
[root@qls ~]# date -d "-1 day" +%F
2020-07-28

[root@qls ~]# date -d "+1 day" +%F
2020-07-30
[root@qls ~]# date -d "+1 month" +%F
2020-08-29
[root@qls ~]# date -d "-1 month" +%F
2020-06-29
[root@qls ~]# date -d "-1 year" +%F
2019-07-29
[root@qls ~]# date -d "+1 year" +%F
2021-07-29


[root@qls ~]# date
Wed Jul 29 11:31:42 CST 2020
[root@qls ~]# date -s 20200730
Thu Jul 30 00:00:00 CST 2020
[root@qls ~]# date
Thu Jul 30 00:00:08 CST 2020
[root@qls ~]# date -s 2020/07/29
Wed Jul 29 00:00:00 CST 2020
[root@qls ~]# date
Wed Jul 29 00:00:02 CST 2020
[root@qls ~]# date -s 11:32:30
Wed Jul 29 11:32:30 CST 2020
[root@qls ~]# date
Wed Jul 29 11:32:31 CST 2020
[root@qls ~]# date -s "20200730 11:00:00"
Thu Jul 30 11:00:00 CST 2020


#时间同步

ntpdate

[root@qls ~]# yum install ntpdate -y


向时间服务器进行同步时间

ntp.aliyun.com  

ntp1.aliyun.com   ....   ntp7.aliyun.com  

[root@qls ~]# ntpdate   ntp.aliyun.com
29 Jul 11:36:33 ntpdate[31370]: step time server 203.107.6.88 offset -84415.000442 sec
[root@qls ~]# date
Wed Jul 29 11:36:35 CST 2020
[root@qls ~]# date -s 20200730
Thu Jul 30 00:00:00 CST 2020
[root@qls ~]# ntpdate   ntp.aliyun.com
29 Jul 11:36:56 ntpdate[31392]: step time server 203.107.6.88 offset -44591.413933 sec
[root@qls ~]# date
Wed Jul 29 11:37:02 CST 2020

原文地址:https://www.cnblogs.com/backz/p/13398607.html