精华内容
下载资源
问答
  • Linux压缩打包命令——tar、zip、unzip

    万次阅读 多人点赞 2019-08-16 18:39:08
    打包跟压缩的区别: 打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以...

    打包跟压缩的区别:

    打包是指将多个文件或者目录放在一起,形成一个总的包,这样便于保存和传输,但是大小是没有变化的,压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的,可以节省存储空间,在压缩的时候通常是先打包再压缩;

    tar命令

    tar命令参数前面加”-"与不加“-”的区别:

    tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;

    常用参数:

    tar命令的常用参数
    -z 是否同时具有gz属性
    -j 是否同时具有bz2属性
    -J 是否同时具有xz属性
    -x 解压缩、提取打包的内容
    -t 查看压缩包内容
    -c 建立一个压缩,打包文档
    -C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
    -v 显示压缩或者打包的内容
    -f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
    -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
    -P 保留绝对路径

    一、打包

    实例:

    a.将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包为一个文件,名称为“jihe.tar”:

    b.查看jihe.tar文件的内容:

    c.提取jihe.tar文件的内容到/opt目录下:

    如果不用“-C”指定目录则会提取内容到当前目录

    二、压缩

    linux主要有三种压缩方式:
    1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
    2.bzip:压缩形成的文件小,但是可用性不如gzip
    3.xz:是最新的压缩方式,可以自动提供最佳的压缩率

    建议的压缩的时候标明后缀:

    参数 作用 命名方式
    -z 用于gzip压缩方式 文件名.tar.gz
    -j 用于bzip2压缩方式 文件名.tar.bz2
    -J 用于xz压缩方式 文件名.tar.xz

    实例:用不同的压缩方式压缩/root/目录下的Golden.apk文件

    先查看Golden.apk文件的大小:

    可以看到Golden.apk文件的大小为187M

    a.用gzip压缩方式将Golden.apk文件压缩为Golden.apk.tar.gz文件:

    b.用bzip2的压缩方式将Golden.apk文件压缩为Golden.apk.tar.bz2文件:

    从上图可以看出红色方框内有报错,这个报错的原因是缺少bzip2的包,需要安装一个bzip2软件包

    安装完成之后再重新压缩:

    在压缩的过程中,我们可以发现:

    压缩速度:gz > bz2 > xz
    压缩率:xz > bz2 > gz

    三、解压

    先删除/root/目录下的Golden.apk文件:

    tar命令式一个很聪明的命令,我们在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩方式对应的方式去解压,这话说得有点拗口,例:

    a.将Golden.apk.tar.gz解压到当前目录:

    在解压gz压缩方式压缩文件的时候并不需要加上-z,直接用参数-xf即可,另外两种压缩方式在解压的时候一样,因为tar命令会自动选择,解压之后压缩文件还在,如果不指定解压出来的文件保存在哪里,那么会直接解压在当前目录

    b.指定解压出来的文件保存的目录,将Golden.apk.tar.bz2文件解压在/opt/目录下:

    补充:

    a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:

    将/root/目录以gzip的方式压缩为root.tar.gz压缩文件:

    1.没有加-P选项:

    2.加上-P选项:

    解压的时候同理,如果在压缩文件的时候使用了-P选项,那么在解压的时候也要加上-P选项,不然也会出现”tar: 从成员名中删除开头的“/”“,如下图:

    1.不加-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:

    2.加上-P选项解压使用了-P选项压缩/root/后的root.tar.gz文件:


    b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的

    将/root/目录下的harry目录打包,但是不打包harry目录下的ha.txt文件,如下图:

    压缩文件也是同理,想要排除指定的目录压缩或者打包也是同理

    zip命令和unzip命令

    #在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装
    查看有没有安装zip跟unzip命令的命令:

    rpm -q zip unzip

    如果有安装了命令则会显示出命令的版本号

    zip命令

    基本用法:

    zip [参数] [压缩包名] [压缩的目录或者文件的路径]

    常用参数:

    zip命令的常用参数
    -m 将文件压缩后,删除原文件
    -o 将压缩文件内的所有文件的最新变动时间设为压缩的时间
    -q 安静模式,在压缩的时候不显示指令执行的过程
    -r 递归压缩,将自定目录下的所有子文件以及文件一起处理
    -x ”文件列表“,压缩时排除文件列表中的文件

     

    实例:

    a.压缩目录,将/root/目录下的harry目录压缩为名为harry.zip压缩包:

    1.正常压缩,不加-q选项,显示压缩的过程:

    2.加上-q选项,安静模式输出,不显示压缩的过程:

    b.压缩多个文件,将/root/目录下的ceshi.txt文件和anaconda-ks.cfg文件和Golden.apk文件压缩为名为jihe.zip的压缩包:

    因为压缩的全是文件,所以可以不用加上-r选项

    c.压缩文件跟目录,将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和harry目录压缩成名为dajihe.zip的压缩包:

    d.将/root/目录下的harry目录压缩为harry1.zip压缩包,排除harry目录下的ha.txt文件:

    unzip命令

    基本用法:

    unzip [参数] [压缩文件]  (-d [目录])  //如果不是用括号里面的内容,则解压文件在当前工作目录

    常用参数:

    unzip命令的常用参数
    -c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
    -l 显示压缩文件内所包含的文件
    -t 检查压缩文件是否正确
    -v 执行时显示压缩文件的详细信息
    -q 安静模式,执行时不显示任何信息
    -d 指定文件解压后存储的目录
    -x 指定不要处理压缩文件中的那些文件

    实例:

    a.将harry.zip压缩包解压缩的结果显示出来:

    具体会显示到每一个文件跟每一个文件的内容

    b.显示jihe.zip压缩包里面锁包含的文件

    c.检查dajihe.zip压缩文件是否正确:

    全部OK表示全部文件都是正确的

    d.不解压压缩文件dajihe.zip,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):

    #使用-v显示的信息比使用-l显示的信息更加详细

    e.将dajihe.zip压缩包解压到/opt/目录下:

    补充:使用r选项增加.tar归档文件的内容应该如何怎么操作?

    我们先来了解一下tar命令-r选项的作用:

    通过tar --help命令查看帮助

    -r选项的作用:把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中

    使用实例:

    看上图,可以看到我ops用户家目录下标记了一个文件,一个目录,我现在先将目录归档,然后再将文件追加到档案里面

    1.归档操作

    生成.tar文件,目录归档完毕!

    2.将calculating_time.sh追加进入.tar文件中

    3.验证

    a.查看.tar文件的归档信息

    可以看到calculating_time.sh文件已经被追加到档案的末尾了

    b.提取Check_Configuration_20201118_PM.tar 到/mnt目录下

    使用-r选项追加文件至.tar文件成功

    展开全文
  • vue项目打包步骤

    万次阅读 多人点赞 2018-06-25 01:04:39
    vue项目打包终端运行命令 npm run build打包成功的标志与项目的改变,如下图:点击index.html,通过浏览器运行,出现以下报错,如图:那么应该如下修改呢?具体步骤如下:1、查看package.js文件的scripts命令2、打开...

    vue项目打包

    一、终端运行命令 npm run build

    二、打包成功的标志与项目的改变,如下图:

    3、点击index.html,通过浏览器运行,出现以下报错,如图:

    四、那么应该如何修改呢?
    具体步骤如下:
    1、查看package.js文件的scripts命令
    2、打开webpack.dev.conf.js文件,找到publicPath: config.dev.assetsPublicPath,按Ctrl点击,跳转到index.js文件
    3、其中dev是开发环境,build是构建版本,找到build下面的assetsPublicPath: '/',然后修改为assetsPublicPath: './',即“/”前加点。
    4、终端运行 npm run build 即可。

    此时点击index.html,通过浏览器运行便,会发现动态绑定的static的图片找不到,故static必须使用绝对路径。将图片路径修改为绝对路径,至此,打包完成。

    五、温馨提示

    更多博文,请关注:xssy5431 【小拾岁月】

    扫码:

     

    展开全文
  • Python打包exe

    万次阅读 2020-01-06 23:50:37
    1.安装 https://pypi.org/project/PyInstaller/ pip install PyInstaller 2.文档 ... ...pyinstaller -F -w filepath ...参数F:打包为一个exe,不加生成文件夹 参数w:后台运行,不加前台运行(会有黑窗口...

    1.安装

    https://pypi.org/project/PyInstaller/

    pip install PyInstaller

    2.文档

    https://pyinstaller.readthedocs.io/en/stable/

    3.使用

    pyinstaller -F -w filepath

    参数F:打包为一个exe,不加生成文件夹

    参数w:后台运行,不加前台运行(会有黑窗口)

    参数filepath:需要打包的Python文件路径

    执行命令后会生成两个文件夹build、dist,双击dist目录下的exe就能后台运行了。

    pyinstaller会自动添加依赖,举例说明:

    项目目录结构如下:

    main.py

    inputview.py

    find.py

    listview.py

    其调用关系是 main.py-->inputview.py-->find.py-->listview.py

    此时,只需要打包main.py即可,其他依赖会自动添加至exe。

    4.打包图标

    ico图标生成:http://www.ico51.cn/

    a.准备ico图标(注:不能简单修改后缀,否则报错,最后两个参数为文件路径)

    b.命令:pyinstaller -F -w -i config.ico QQ.py

    5.高级用法

    运行命令: pyinstaller filepath 后,会在当前目录下生成.spec文件,可对该文件进行配置,实现定制化打包。

    a.需求:主程序导入了配置文件config.py,打包默认将所有依赖添加至exe,但config.py后续要求是可配置的,不应该一起打包,此实现如下:

    pyinstaller filepath 生成.spec文件

    编辑修改.spec 添加排除规则 excludes=['config']

    重新打包 pyinstaller filepath

    将config.py复制至dist目录,整个dist目录就是打包好的可配置运行环境,运行dist中的exe,即可运行。

     

     

    展开全文
  • Python项目打包发布方法

    万次阅读 多人点赞 2018-12-29 11:56:07
    目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。...

     

          目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。

          在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。

          如下以windows系统为例,分2个步骤,演示如何使用pyinstaller打包。

          第1步:安装pyinstaller

          安装pyinstaller之前首先必须有pip,如果还没有安装,请用度娘搜索“python安装pip”,资源丰富,在此不再介绍,使用pip安装pyinstaller的命令如下:

    pip install pyinstaller

          命令执行的截图如下,直至安装完毕,我仅截取了前面部分打印信息。

          第2步:打包exe文件

          如果是打包一个py文件,可以使用“pyinstaller -F 待打包文件名”进行打包,在命令执行完毕后,会在dist目录下生成一个“待打包文件名.exe”的文件。如果不使用“-F”参数,则会在dist目录下生成一个“待打包文件名”的文件夹,该文件夹下包含“待打包文件.exe”,但是要整个文件夹在一起才能正常工作,因为这个文件夹的功能相当于使用“-F”时的一个“待打包文件.exe”。

          使用加F参数打包成一个exe文件的操作截图如下:

           使用“F”强制打包参数,有时会导致软件功能运行不正常,仅限于小的范例使用,如果项目有多个py文件,则建议别再使用“F”参数。

          如果项目有多个文件,打包时可以把多个文件列出来,中间用空格隔开即可。

          如果需要修改默认图标为指定图标,则使用“-i  图标文件名”来实现。

          如下为使用多个py文件和图标的打包截图。

          pyinstaller的参数见下表,大家可以在需要时参考。

    参数 参数全称 参数说明

    -F

    –onefile

    打包成单个可执行文件,如果你的代码都写在一个.py文件,则可以使用,如果是多个.py文件,建议不要使用。

    -D

    –onedir

    打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,该方式代码较易于维护。

    -K –tk 在部署时包含 TCL/TK。
    -a –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码。
    -d –debug

    产生debug版本的可执行文件

    -w –windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(仅对Windows有效)
    -c –nowindowed,–console

    使用控制台子系统执行(默认)(只对Windows有效)

    pyinstaller -c  xxxx.py

    pyinstaller xxxx.py --console

    -s –strip

    可执行文件和共享库将run through strip。

    注意Cygwin的strip可能使普通的win32 Dll无法使用

    -X –upx 如果有UPX安装(执行Configure.py时检测),则会压缩执行文件(Windows系统中的DLL也会)
    -o DIR –out=DIR 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下。
    -p DIR –path=DIR

    设置导入路径(和使用PYTHONPATH效果相似)。

    可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源

    -i <FILE.ICO> –icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标  pyinstaller -i  ico路径 xxxxx.py
    –i <FILE.EXE, N> –icon=<FILE.EXE, N>

    将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)

    -v FILE –version=FILE 将verfile作为可执行文件的版本资源(只对Windows系统有效)
    -n NAME –name=NAME

    可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    如果你喜欢这篇文章,别忘了点赞和评论哦!

    展开全文
  • Pyinstaller 打包发布经验总结

    万次阅读 多人点赞 2018-09-02 18:46:30
    使用Pyinstaller打包Python项目包含了大量的坑,这篇文章总结实践得到的Pyinstaller打包经验。本文的例子为Python3.6代码,Pyinstaller3.4,在windows下打包为64位和32位版本。 目录 Pyinstaller基本使用方法 ...
  • 最近因为需求,需要把移动端网页打包成APP,本人一直是做网站开发的,没想到现在的webapp打包能如此方便了,打包的时候只用提供网站链接就可以了(原理应该是做一个app简单浏览器,然后默认打开你网站的链接),让你...
  • 将python文件打包成exe可运行文件

    万次阅读 多人点赞 2017-12-24 18:16:19
    目前有好几种方法可以将python文件打包成exe应用程序文件,例如py2exe,pyinstaller等,比较下来,还是觉得pyinstaller使用起来比较简单。 首先第一步下载安装pyinstaller, 如果已经安装过python3的用户比较方便...
  • VueJs 打包之后遇到的坑

    万次阅读 热门讨论 2018-06-01 17:38:15
    先来npm run build 打包出来看看吧!打包中...,我们用本地服务器打开看一下。额,不看不知道,一看吓一跳,坑咋这么多呢!但是作为一名积极向上的IT从业者,填坑吧。1.打包之后没有被渲染出来。怎么回事,刚打开就...
  • 用python打包exe应用程序-PyInstaller

    万次阅读 多人点赞 2020-12-09 08:35:00
    1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的...
  • Qt程序打包发布方法(使用官方提供的windeployqt工具) Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行...
  • QT5的程序打包发布(打包成exe可执行程序)

    万次阅读 多人点赞 2018-12-11 11:30:20
    QT打包的两种方式: 一个是QT5自带的windeployqt(不需要下载安装),它可以找到程序(exe)用到的所有库文件,并且都拷贝到exe程序的当前文件。此时打包的exe较小,需要和拷贝进来的文件放一起运行,也可以将这些...
  • maven打包时跳过测试

    万次阅读 多人点赞 2018-04-18 11:45:17
    准备打包(maven package),没想到在执行到TEST阶段报错。百思不得其解,决定跳过测试去打包,然后部署。 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test 在运行mvn ...
  • Eclipse中打包maven项目-war包方式

    万次阅读 2017-12-06 22:54:57
    IntelliJ IDEA打包成战(包括maven项目)[ https://blog.woytu.com/ ](https://blog.woytu.com/) 个人资源站:https://file.woytu.com/ 首先要在Maven的的项目中的pom.xml的文件中配置好需要的配置: &lt;...
  • Webpack打包

    万次阅读 2020-02-21 18:36:50
    模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。 为什么使用webpack 现在是...
  • Vue项目打包成移动端APP

    万次阅读 多人点赞 2019-09-25 20:50:14
    Vue项目打包成移动端APP 需要准备的工具:Hbuilder 目录 Vue项目打包成移动端APP 首先打包vue到dist目录 然后再Hbuilder中打开dist目录 然后将dist包含的 web项目 转换为 移动 APP项目 前几步配置完成后,就...
  • IDEA打包jar包详尽流程

    万次阅读 多人点赞 2019-04-08 23:11:59
    打包流程 1. 打开菜单栏File-Project Structure 2. 点击Artifacts 3. 点击 "+" - JAR - From module with depenencies 4. 后弹出如下界面,自此开始,各种问题就来了 首先Module中,我SocketDemo的...
  • 1、首先用maven的package进行打包jar,这个jar是可以运行的 2、获取jar里的MANIFEST.MF文件,进行查看main-class: 3、使用exe4j进行打包exe文件
  • maven打包打包指定的lib文件夹

    千次阅读 2019-10-31 19:15:29
    今天在打包自己的spring boot项目时遇到了问题, 报找不到类和符号。 因为我有些依赖是放在项目lib文件夹中,那么打包的时候要连把它一起打包。 修改pom.xml, 添加一下内容: <build> <plugins>...
  • Linux一键拉取代码打包部署项目脚本

    万次阅读 2020-04-15 18:06:56
    2.maven打包 3.循环杀掉所有正在运行的项目相关的服务(注意执行文件不要起和项目相同的名字,会把正在执行的文件任务给杀掉) 4.删除原来的jar包和内容.复制打包jar到指定位置 5.加载外部配置文件启动项目,并输出当前...
  • 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。 首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑...
  • Unity打包IOS版本须知流程(移动)

    万次阅读 2018-05-17 13:47:46
    欢迎加入Unity业内qq交流群:956187480 ...Unity是个开放性的平台,打包时也可以选择多种打包类型,几乎包含了所有的平台,目前主流Android,iOS平台,Android平台可以直接使用Unity自行打包,但iOS平...
  • Linux打包和解包

    万次阅读 2019-10-14 20:32:11
    1.打包和解包 1.1 打包 (1) 打包之后的大文件需要以**.tar**结尾 (2) 打包命令格式 命令格式如下 #将 一系列文件 打包成 一个大文件 tar ‐cvf 打包名.tar 被打包的目录 tar ‐cvf 打包名.tar 被打包的文件1 ...
  • title: 用 Pyinstaller 来打包 + 解决打包结果过大问题 date: 2019-05-24 20:24:35 categories: 工具教程 这段时间应老师的要求,给实验室写了一个基于 PyQt5 的小工具。然而源码发过去人家还不要,一定要...
  • pyinstaller selenium python3 chrome打包问题

    万次阅读 2019-10-16 17:21:25
    今天打包selenium一个简单的请求,打完包本机运行exe没有问题,换台机器就闪退,非常蛋疼找了半天原因。 下面简述下,防止踩坑,如果闪退十有八九是浏览器版本跟浏览器插件对不上。 首先安装pyinstaller pip ...
  • Electron安装及打包exe

    万次阅读 2019-06-08 00:48:22
    一、安装node.js 二、安装淘宝镜像的包命令行管理工具cnpm 三、全局安装electron 四、安装git 五、快速上手electron 六、打包成exe ...1. 全局安装打包神器electron-packager ...(2) 直接在打包命令中设置参数
  • Docker 打包jar

    万次阅读 2020-01-13 13:23:58
    1、先打包后端服务,我们采用的是jar运行新建Dockerfile 目录如下 2、编写Dockerfile FROM java:8 VOLUME /Demo ADD target/demo-1.0.jar demo.jar RUN sh -c 'touch /demo.jar' ENTRYPOINT [ "sh", "-c", ...
  • 命令行打包jar

    万次阅读 2018-05-05 21:44:16
    对于使用Eclipse自动打包jar比较方便,但是如果不加限制结果可能jar中包含很多其他多余文件。因此可以自定义打包样式,在命令行使用jar命令完成java程序打包. 一、简单打包 新建一个目录tmp,进入该目录. 新建...
  • 【vue】npm run build打包路径问题

    万次阅读 2018-06-08 12:31:07
    直接插入主体 额不 主题 我的vue脚手架目录结构如下 有个config文件夹,在index.js中有两个方法一个开发dev,一个生产build。...一:Vue打包js,css等的路径问题 我们打包自然要设置build中的代码了。下...
  • Springboot如何打包部署项目

    万次阅读 2019-06-12 10:33:38
    2.idea中快速打包 3.java –jar运行项目 4.访问项目 5.发布到服务器 前言 用心写好每一篇文章,真心对待每一个读者 文章首发地址: www.javayihao.top 首发公众号: java一号 项目创建开发完成之后,如何...
  • Android Studio 打包3之命令行打包

    千次阅读 2019-04-26 14:05:59
    以上2篇介绍了图形界面方式打包,比较简单,接下来介绍命令行打包 既然用命令行打包,自然要用到Gradle,这里不建议自己去直接修改配置文件,推荐使用AS的图形界面的修改方式,不容易出错。 第一步:配置 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 268,008
精华内容 107,203
关键字:

打包