码迷,mamicode.com
首页 > 其他好文 > 详细

四周第五次课(1月6日) 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

时间:2018-01-07 14:23:12      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:absolute   archive   hosts   bzip2   time   ini   ntc   alt+   match   

四周第五次课(1月6日)
6.5 zip压缩工具
6.6 tar打包
6.7 打包并压缩


tar命令:
可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

语法
tar(选项)(参数)
选项
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。
参数
文件或目录:指定要打包的文件或目录列表。

实例
将文件全部打包成tar包:

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

查阅上述tar包内有哪些文件:

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

将tar包解压缩:

tar -zxvf /opt/soft/test/log.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的

只将tar内的部分文件解压出来:

tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
我可以透过tar -ztvf来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!

文件备份下来,并且保存其权限:

tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。

在文件夹当中,比某个日期新的文件才备份:

tar -N "2012/11/13" -zcvf log17.tar.gz test
备份文件夹内容是排除部分文件:

tar --exclude scf/service -zcvf scf.tar.gz scf/*
其实最简单的使用 tar 就只要记忆底下的方式即可:

压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

 

Xshell 5 (Build 1199)
Copyright (c) 2002-2017 NetSarang Computer, Inc. All rights reserved.

Type `help‘ to learn how to use Xshell prompt.
[c:\~]$

Connecting to 192.168.183.128:22...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.

Last login: Fri Jan 5 23:19:15 2018
[root@localhost ~]# ls
234 2.txt anaconda-ks.cfg.1 新建文本文档_(2).txt
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# ls
11.txt.gz d6z
123 fstab
12.txt passwd.sh
1.txt systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.bz2 systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
1.txt.gz xxx.sh
2.txt.xz
[root@localhost tmp]# zip cd /etc/
-bash: zip: 未找到命令
[root@localhost tmp]# cd /etc/
[root@localhost etc]# ls
adjtime hosts rc2.d
aliases hosts.allow rc3.d
aliases.db hosts.deny rc4.d
alternatives init.d rc5.d
anacrontab inittab rc6.d
asound.conf inputrc rc.d
audisp iproute2 rc.local
audit issue rdma
bash_completion.d issue.net redhat-release
bashrc kdump.conf resolv.conf
binfmt.d kernel resolv.conf.save
centos-release krb5.conf rpc
centos-release-upstream krb5.conf.d rpm
chkconfig.d ld.so.cache rsyslog.conf
chrony.conf ld.so.conf rsyslog.d
chrony.keys ld.so.conf.d rwtab
cron.d libaudit.conf rwtab.d
cron.daily libnl sasl2
cron.deny libuser.conf securetty
cron.hourly locale.conf security
cron.monthly localtime selinux
crontab login.defs services
cron.weekly logrotate.conf sestatus.conf
crypttab logrotate.d shadow
csh.cshrc lvm shadow-
csh.login machine-id shells
dbus-1 magic skel
default makedumpfile.conf.sample ssh
depmod.d man_db.conf ssl
dhcp mke2fs.conf statetab
DIR_COLORS modprobe.d statetab.d
DIR_COLORS.256color modules-load.d subgid
DIR_COLORS.lightbgcolor motd subuid
dnsmasq.conf mtab sudo.conf
dnsmasq.d my.cnf sudoers
dracut.conf my.cnf.d sudoers.d
dracut.conf.d NetworkManager sudo-ldap.conf
e2fsck.conf networks sysconfig
environment nsswitch.conf sysctl.conf
ethertypes nsswitch.conf.bak sysctl.d
exports openldap systemd
favicon.png opt system-release
filesystems os-release system-release-cpe
firewalld pam.d tcsd.conf
fonts passwd terminfo
fstab passwd- tmpfiles.d
fuse.conf pkcs11 tuned
gcrypt pki udev
GeoIP.conf plymouth updatedb.conf
GeoIP.conf.default pm vconsole.conf
gnupg polkit-1 vimrc
GREP_COLORS popt.d virc
groff postfix vmware-tools
group ppp wpa_supplicant
group- prelink.conf.d X11
grub2.cfg printcap xdg
grub.d profile xinetd.d
gshadow profile.d yum
gshadow- protocols yum.conf
gss python yum.repos.d
host.conf rc0.d
hostname rc1.d
[root@localhost etc]# zip cd /etc/
-bash: zip: 未找到命令
[root@localhost etc]# cd /tmp/
[root@localhost tmp]# ls
11.txt.gz d6z
123 fstab
12.txt passwd.sh
1.txt systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.bz2 systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
1.txt.gz xxx.sh
2.txt.xz
[root@localhost tmp]# du -sh 1.txt
4.0K 1.txt
[root@localhost tmp]# du -sh d6z/
15M d6z/
[root@localhost tmp]# tree d6z/
d6z/
├── 1.txt.bz2
├── 2.txt
├── 3.txt
└── 4.txt

0 directories, 4 files
[root@localhost tmp]# yum install -y zip
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/2): extras/7/x86_64/primary_db | 145 kB 00:00:00
(2/2): updates/7/x86_64/primary_db | 5.2 MB 00:00:01
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 zip.x86_64.0.3.0-11.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

====================================================================================
Package 架构 版本 源 大小
====================================================================================
正在安装:
zip x86_64 3.0-11.el7 base 260 k

事务概要
====================================================================================
安装 1 软件包

总下载量:260 k
安装大小:796 k
Downloading packages:
zip-3.0-11.el7.x86_64.rpm | 260 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : zip-3.0-11.el7.x86_64 1/1
验证中 : zip-3.0-11.el7.x86_64 1/1

已安装:
zip.x86_64 0:3.0-11.el7

完毕!
[root@localhost tmp]# ls
11.txt.gz d6z
123 fstab
12.txt passwd.sh
1.txt systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.bz2 systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
1.txt.gz xxx.sh
2.txt.xz
[root@localhost tmp]# d6z/
-bash: d6z/: 是一个目录
[root@localhost tmp]# cd /d6z
-bash: cd: /d6z: 没有那个文件或目录
[root@localhost tmp]# cd d6z/
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[root@localhost d6z]# zip 3.txt.zip 5.txt
zip warning: name not matched: 5.txt

zip error: Nothing to do! (3.txt.zip)
[root@localhost d6z]# zip 5.txt.zip 3.txt
adding: 3.txt (deflated 74%)
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt 5.txt.zip
[root@localhost d6z]# du -sh 5.txt.zip
1.3M 5.txt.zip
[root@localhost d6z]# cd /tmp/
[root@localhost tmp]# ls
11.txt.gz d6z
123 fstab
12.txt passwd.sh
1.txt systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.bz2 systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
1.txt.gz xxx.sh
2.txt.xz
[root@localhost tmp]# cp /tmp/d6z/3.txt /tmp/2.txt
[root@localhost tmp]# ls
11.txt.gz 2.txt.xz
123 d6z
12.txt fstab
1.txt passwd.sh
1.txt.bz2 systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.gz systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt xxx.sh
[root@localhost tmp]# zip -r ading.zip 2.txt d6z
adding: 2.txt (deflated 74%)
adding: d6z/ (stored 0%)
adding: d6z/2.txt (deflated 74%)
adding: d6z/4.txt (deflated 74%)
adding: d6z/1.txt.bz2 (deflated 2%)
adding: d6z/3.txt (deflated 74%)
adding: d6z/5.txt.zip (stored 0%)
[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt fstab
1.txt passwd.sh
1.txt.bz2 systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.gz systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt xxx.sh
2.txt.xz
[root@localhost tmp]# du -sh ading.zip
6.6M ading.zip
[root@localhost tmp]# unzip
-bash: unzip: 未找到命令
[root@localhost tmp]# yum install -y unzip
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 unzip.x86_64.0.6.0-16.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

====================================================================================
Package 架构 版本 源 大小
====================================================================================
正在安装:
unzip x86_64 6.0-16.el7 base 169 k

事务概要
====================================================================================
安装 1 软件包

总下载量:169 k
安装大小:365 k
Downloading packages:
unzip-6.0-16.el7.x86_64.rpm | 169 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : unzip-6.0-16.el7.x86_64 1/1
验证中 : unzip-6.0-16.el7.x86_64 1/1

已安装:
unzip.x86_64 0:6.0-16.el7

完毕!
[root@localhost tmp]# unzip ading.zip
Archive: ading.zip
replace 2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace d6z/2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: d6z/2.txt
inflating: d6z/4.txt
inflating: d6z/1.txt.bz2
inflating: d6z/3.txt
extracting: d6z/5.txt.zip
[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt fstab
1.txt passwd.sh
1.txt.bz2 systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
1.txt.gz systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt xxx.sh
2.txt.xz
[root@localhost tmp]# du -sh 12.txt
28K 12.txt
[root@localhost tmp]# cp 2.txt 3.txt
[root@localhost tmp]# ls
11.txt.gz 3.txt
123 ading.zip
12.txt d6z
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz xxx.sh
[root@localhost tmp]# zip 3.txt
zip warning: missing end signature--probably not a zip file (did you
zip warning: remember to use binary mode when you transferred it?)
zip warning: (if you are trying to read a damaged archive try -F)

zip error: Zip file structure invalid (3.txt)
[root@localhost tmp]# zip 3.txt.zip 4.txt
zip warning: name not matched: 4.txt

zip error: Nothing to do! (3.txt.zip)
[root@localhost tmp]# du -sh 3.txt
4.7M 3.txt
[root@localhost tmp]# zip 4.txt.zip 3.txt
adding: 3.txt (deflated 74%)
[root@localhost tmp]# ls
11.txt.gz 4.txt.zip
123 ading.zip
12.txt d6z
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz xxx.sh
3.txt
[root@localhost tmp]# midir test
-bash: midir: 未找到命令
[root@localhost tmp]# mdir test
-bash: mdir: 未找到命令
[root@localhost tmp]# mkdir test
[root@localhost tmp]# la
-bash: la: 未找到命令
[root@localhost tmp]# ls
11.txt.gz 4.txt.zip
123 ading.zip
12.txt d6z
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
[root@localhost tmp]# unzip 4.txt.zip -d test/
Archive: 4.txt.zip
inflating: test/3.txt
[root@localhost tmp]# unzip 4.txt.zip -d test/aa.txt
Archive: 4.txt.zip
inflating: test/aa.txt/3.txt
[root@localhost tmp]# ls
11.txt.gz 4.txt.zip
123 ading.zip
12.txt d6z
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
[root@localhost tmp]# unzip -l ading.zip
Archive: ading.zip
Length Date Time Name
--------- ---------- ----- ----
4887826 01-06-2018 23:36 2.txt
0 01-06-2018 23:30 d6z/
4887826 01-05-2018 22:50 d6z/2.txt
4887826 01-05-2018 22:07 d6z/4.txt
505649 01-05-2018 21:32 d6z/1.txt.bz2
4887826 01-05-2018 22:28 d6z/3.txt
1283458 01-06-2018 23:30 d6z/5.txt.zip
--------- -------
21340411 7 files
[root@localhost tmp]# ls
11.txt.gz 4.txt.zip
123 ading.zip
12.txt d6z
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
[root@localhost tmp]# tac -cvf d6z.tar d6z/
tac:无效选项 -- c
Try ‘tac --help‘ for more information.
[root@localhost tmp]# tar -cvf d6z.tar d6z/
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
[root@localhost tmp]# tar -cf d6z.tar d6z/
[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt d6z.tar
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
4.txt.zip
[root@localhost tmp]# tar -xvf d6z.tar
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
[root@localhost tmp]# tar -cf d6z.tar d6z/ 3.txt 2.txt
[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt d6z.tar
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
4.txt.zip
[root@localhost tmp]# tar -cvf d6z.tar d6z/ 3.txt 2.txt
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
3.txt
2.txt
[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt d6z.tar
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-9e0b5037387f4aeaaee2805dec833469-vmtoolsd.service-L82nrG
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
2.txt.xz test
3.txt xxx.sh
4.txt.zip
[root@localhost tmp]# tar -cvf d6z.tar d6z/

[root@localhost tmp]# ls
11.txt.gz ading.zip
123 d6z
12.txt d6z.tar
1.txt fstab
1.txt.bz2 passwd.sh
1.txt.gz systemd-private-1f0171fd511546febe607a6b43ea1466-vmtoolsd.service-5L
2.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-Nv
2.txt.xz test
3.txt xxx.sh
4.txt.zip
[root@localhost tmp]# tar -cvf adimgliunx.tar --exclude 1 d6z 2.txt 3.txt
11.txt.gz 123/ 12.txt 1.txt 1.txt.bz2 1.txt.gz
[root@localhost tmp]# tar -cvf adimgliunx.tar --exclude 123/ d6z 2.txt 3.txt
31.txt 32.txt .32.txt.swp 32_txt.swp .32.txt.swx 332/
[root@localhost tmp]# tar -cvf adimgliunx.tar --exclude 123/ d6z 2.txt 3.txt
31.txt 32.txt .32.txt.swp 32_txt.swp .32.txt.swx 332/
[root@localhost tmp]# tar -cvf adimgliunx.tar --exclude d6z 2.txt 3.txt
2.txt
3.txt
[root@localhost tmp]# tar -czvf d6z.tar.zg d6z/ 3.txt 2.txt
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
3.txt
2.txt
[root@localhost tmp]# du -ah d6z.tar.zg
7.9M d6z.tar.zg
[root@localhost tmp]# tar -cJvf d6z.tar.xz d6z/ 3.txt 2.txt
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
3.txt
2.txt
[root@localhost tmp]# du -ah d6z.tar.xz
1.6M d6z.tar.xz
[root@localhost tmp]# ls
11.txt.gz
123
12.txt
1.txt
1.txt.bz2
1.txt.gz
2.txt
2.txt.xz
3.txt
4.txt.zip
adimgliunx.tar
ading.zip
d6z
d6z.tar
d6z.tar.xz
d6z.tar.zg
fstab
passwd.sh
systemd-private-1f0171fd511546febe607a6b43ea1466-vmtoolsd.service-5LBo0d
systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
test
xxx.sh
[root@localhost tmp]# tar -tf d6z.tar.
d6z.tar.xz d6z.tar.zg
[root@localhost tmp]# tar -tf d6z.tar.xz
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
3.txt
2.txt
[root@localhost tmp]# tar -tf d6z.tar
d6z/
d6z/2.txt
d6z/4.txt
d6z/1.txt.bz2
d6z/3.txt
d6z/5.txt.zip
3.txt
2.txt
[root@localhost tmp]#

四周第五次课(1月6日) 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

标签:absolute   archive   hosts   bzip2   time   ini   ntc   alt+   match   

原文地址:https://www.cnblogs.com/yikebaicai/p/8227456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!