- 外文名
- ZIP
- 文件格式
- 计算机文件的压缩的算法
- 发明者
- 菲尔·卡茨
- 释 义
- 高储存密度的磁盘驱动器与磁盘
- zip软盘
- 100MB,200MB等多种
- 中文名
- 软驱
-
2020-12-10 11:31:31
博友们,你们好,很高兴能在这里和大家分享技术文章,我是
Amo Xiang
,是一名在职企业员工,Amo
来源于上家公司的英文名,本意是爱
。作为刚入行几年互联网行业的小白,博主写博客一方面是为了记录自己的学习过程以及所犯的错误,更多的是希望能够帮助到很多处于起步阶段的萌新,让他们少走弯路。在编写文章时,参考了大量书籍及一些互联网大佬的资源,并结合了自己的工作经验,博主本着科学、严谨的态度、力求精益求精,但疏漏之处在所难免,敬请广大博友批评指正。博客主页:https://blog.csdn.net/xw1680?spm=1011.2124.3001.5113更多相关内容 -
oppo ozip格式转zip ozip2zip工具 ozip解密工具
2021-11-13 15:49:08将OPPO官网下载的ozip格式刷机包转成zip格式的刷机包,方便第三方rec刷入,亲测好用,严重鄙视某些论坛和厂商出的工具 这点东西还收费,目前已整理工具并打包,设置0积分下载,有用点个关注和支持,感谢!... -
ZIP解压缩命令
2018-09-28 16:40:54Windows没有ZIP,UNZIP命令,这边包含类似Linux下的ZIP和UNZIP命令的应用程序,加入环境变量即可像Linux命令行一样使用ZIP,UNZIP命令了。 -
C++ zip压缩解压缩源代码
2016-11-22 21:07:11C++ zip压缩解压缩源代码 压缩时调用 #include "zip.h" HZIP hz = CreateZip("c:\\simple1.zip",0); ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp"); ZipAdd(hz,"znsimple.txt", "c:\\simple.txt"); ... -
syno_search_fullpack.zip
2021-02-04 15:24:57群晖download station中添加BT搜索引擎 来自于osdn论坛(https://zh.osdn.net/projects/sfnet_synoboost/) SynoBoost - project devoted to distribute addons and plugins for Synology NAS. 打开群晖nas中download ... -
zip4j_1.3.2 - Java操作zip压缩文件接口最新版本
2015-01-09 11:27:53这是最新版本的zip4j,版本号是1.3.2 官网上没有提供api文档,我生了一份,一并打在zip包中,希望能有所帮助。。。 为了方便大家,本资源不设下载积分。 Java操作zip压缩格式的开源项目,功能强大而且使用方便,... -
gradle-4.4-all.zip
2017-12-11 15:21:34gradle-4.4-all.zip Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy... -
SoftCnKiller2.54.zip(因为要下载码,弃用不更新了)
2021-07-04 13:51:43根据data目录下的sign.txt(数字签名字符串)、folder.txt(目录名字符串)筛选流氓软件启动项,默认只删启动项,全选处理后重启系统就可以了。 -
zip4j--Java操作zip压缩文件接口
2012-07-09 12:37:31Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问... -
apache-jmeter-5.1.1(Requires Java 8+).zip
2019-08-01 09:36:54。Apache JMeter 5.1.1 (Requires Java 8+),需要jdk8以上的版本。 -
103套PPT模板.zip
2020-12-05 16:30:34读本科常用的100套PPT模板,里面的模板能应用于答辩、汇报、经验分享,风格各异,可以根据自己的喜欢进行挑选 -
mysql-5.7.13-winx64.zip
2016-07-06 17:46:10mysql-5.7.13-winx64.zip 从官网上下载下来的,MD5: 4a80ba4a81468fd848258367c8e81d76 -
distribute_setup.zip
2016-03-08 12:42:03安装opencc-python出错时:解压缩distribute_setup.zip后,把distribute_setup.py放到C:\Python\Lib -
Zip解压-可设置压缩文件编码方式
2015-09-19 22:32:24jdk自带的ZipEntry类解压zip文件,中文文件会出现乱码,jar包是根据Apache的解压缩包进行改造的,也适合于Android使用 -
Zip和7-zip谁更强,如何选择?
2021-01-04 10:08:51Zip和7-zip谁更强,如何选择? 一. 7z rar zip之间的区别 7z一般对应的软件是7zip zip对应的是winzip rar对应的 winrar 只不过现在这几个软件基本互相支持。 7z压缩比率大些。zip次之,压缩比率越大,压缩的越小哦!!! ...Zip和7-zip谁更强,如何选择?
一. 7z rar zip之间的区别
7z一般对应的软件是7zip zip对应的是winzip rar对应的 winrar 只不过现在这几个软件基本互相支持。 7z压缩比率大些。zip次之,压缩比率越大,压缩的越小哦!!! zip格式比较常见,支持泛围广。windows操作系统不装任选第三方软件也可以打开zip格式。 rar 和7z必须用解压缩软件才行。
二 使用jdk操作winzip文件解压缩
我们使用jdk自带的zip解决方案来测试winzip文件解压缩
2.1 压缩zip文件
/** * 压缩zip文件 * @param sourceFilePath * @param zipFilePath * @param fileName * @return */ public static String zip(String sourceFilePath, String zipFilePath, String fileName) { File sourceFile = new File(sourceFilePath); FileInputStream fis; BufferedInputStream bis = null; FileOutputStream fos; ZipOutputStream zos = null; if (!sourceFile.exists()) { System.out.println("待压缩的文件目录:" + sourceFilePath + "不存在."); } else { try { File zipFile = new File(zipFilePath + File.separator + fileName + ".zip"); if (zipFile.exists()) { System.out.println(zipFilePath + "目录下存在名字为:" + fileName + ".zip" + "打包文件."); } else { File[] sourceFiles = sourceFile.listFiles(); if (null == sourceFiles || sourceFiles.length < 1) { System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩."); } else { fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); byte[] bufs = new byte[1024 * 10]; for (File file : sourceFiles) { //创建ZIP实体,并添加进压缩包 ZipEntry zipEntry = new ZipEntry(file.getName()); zos.putNextEntry(zipEntry); //读取待压缩的文件并写进压缩包里 fis = new FileInputStream(file); bis = new BufferedInputStream(fis, 1024 * 10); int read = 0; while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) { zos.write(bufs, 0, read); } } } } return zipFile.getAbsolutePath(); } catch (IOException e) { e.printStackTrace(); return null; } finally { //关闭流 try { if (null != bis) bis.close(); if (null != zos) zos.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; }
测试一下:
public static void main(String[] args) { //压缩文件 zip("E:\\excel", "E:\\excel", "excel"); }
我需要压缩的目录
压缩后的结果:
2.2 解压zip文件
/** * zip解压文件 * * @param zipFilePath 压缩文件 * @param unzipFilePath 解压文件路径 * @param includeZipFileName 是否包含原文件名 */ public static String unZip(String zipFilePath, String unzipFilePath, boolean includeZipFileName) throws Exception { if (StringUtils.isBlank(zipFilePath) || StringUtils.isBlank(unzipFilePath)) { log.info("-> 必传参数为空"); return null; } File zipFile = new File(zipFilePath); if (!zipFile.exists() || !zipFile.isFile()) { log.info("-> 要解压的文件不存在"); return null; } log.info("-> 解压的文件大小: {}", zipFile.length()); //如果解压后的文件保存路径包含压缩文件的文件名,则追加该文件名到解压路径_ if (includeZipFileName) { String fileName = zipFile.getName(); log.info("-> fileName: {}", fileName); if (!fileName.isEmpty()) { fileName = fileName.substring(0, fileName.lastIndexOf(".")); log.info("-> fileName: {}", fileName); } unzipFilePath = unzipFilePath + File.separator + fileName; } log.info("-> unzipFilePath: {}", unzipFilePath); //创建解压缩文件保存的路径 File unzipFileDir = new File(unzipFilePath); if (!unzipFileDir.exists() || !unzipFileDir.isDirectory()) { boolean crtDir = unzipFileDir.mkdirs(); log.info("-> 创建存储解压后的路径{}", crtDir); } //开始解压 ZipEntry entry; String entryFilePath, entryDirPath; File entryFile, entryDir; int index, count, bufferSize = 1024; byte[] buffer = new byte[bufferSize]; BufferedInputStream bis; BufferedOutputStream bos; ZipFile zip = new ZipFile(zipFile, Charset.forName("gbk")); Enumeration<? extends ZipEntry> entries = zip.entries(); //循环对压缩包里的每一个文件进行解压 while (entries.hasMoreElements()) { entry = new ZipEntry(entries.nextElement()); //构建压缩包中一个文件解压后保存的文件全路径 entryFilePath = unzipFilePath + File.separator + entry.getName(); fileFullNames.add(entryFilePath); entryDir = new File(entryFilePath); //如果文件夹路径不存在,则创建文件夹 if (!(entryDir.exists() && entryDir.isDirectory())) { entryDir.mkdirs(); } //创建解压文件 entryFile = new File(entryFilePath); if (entryFile.exists()) { //删除已存在的目标文件 entryFile.delete(); } //写入文件 bos = new BufferedOutputStream(new FileOutputStream(entryFile)); bis = new BufferedInputStream(zip.getInputStream(entry)); while ((count = bis.read(buffer, 0, bufferSize)) != -1) { bos.write(buffer, 0, count); } bos.flush(); bos.close(); bis.close(); } return unzipFilePath; }
解压测试
public static void main(String[] args) { //解压文件 try { unZip("E:\\excel\\excel.zip", "E:\\excel\\jy", false); } catch (Exception e) { e.printStackTrace(); } }
解压前:
解压后:
三 使用commons-compress操作7zip文件解压缩
这里,我们使用apache-commons-compress软件库来进行7zip文件的解压缩
Apache Commons Compress库定义了一个用于处理ar,cpio,Unix转储,tar,zip,gzip,XZ,Pack200,bzip2、7z,arj,lzma,snappy,DEFLATE,lz4,Brotli,Zstandard,DEFLATE64和Z文件的API 。
此组件中的代码有很多渊源:
- 对bzip2,tar和zip的支持来自Avalon的Excalibur,但就Apache的生存而言,其最初来自Ant。tar包最初是Tim Endres的公共领域包。bzip2软件包基于Keiron Liddle和Julian Seward的 libbzip2所做的工作。它已通过以下方式迁移:
Ant-> Avalon-Excalibur-> Commons-IO-> Commons-Compress。 - cpio软件包由Michael Kuss和jRPM 项目贡献。
3.1 maven依赖
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.9</version> </dependency>
3.2 压缩7zip文件
/** * 7z文件压缩 * * @param sourceFilePath 待压缩目录路径 * @param zipFilePath 生成的压缩包路径 * @param fileName 生成的压缩包目录 */ public static void compress7zip(String sourceFilePath, String zipFilePath, String fileName) throws Exception { File input = new File(sourceFilePath); if (!input.exists()) { throw new Exception(input.getPath() + "待压缩文件不存在"); } SevenZOutputFile out = new SevenZOutputFile(new File(zipFilePath)); compress(out, input, fileName); out.close(); } /** * @param fileName 压缩文件名,可以写为null保持默认 */ //递归压缩 public static void compress(SevenZOutputFile out, File input, String fileName) throws IOException { SevenZArchiveEntry entry = null; //如果路径为目录(文件夹) if (input.isDirectory()) { //取出文件夹中的文件(或子文件夹) File[] flist = input.listFiles(); if (flist.length == 0)//如果文件夹为空,则只需在目的地.7z文件中写入一个目录进入 { /*entry = out.createArchiveEntry(input,name + "/"); out.putArchiveEntry(entry);*/ } else//如果文件夹不为空,则递归调用compress,文件夹中的每一个文件(或文件夹)进行压缩 { for (int i = 0; i < flist.length; i++) { compress(out, flist[i], fileName + "/" + flist[i].getName()); } } } else//如果不是目录(文件夹),即为文件,则先写入目录进入点,之后将文件写入7z文件中 { FileInputStream fos = new FileInputStream(input); BufferedInputStream bis = new BufferedInputStream(fos); entry = out.createArchiveEntry(input, fileName); out.putArchiveEntry(entry); int len = -1; //将源文件写入到7z文件中 byte[] buf = new byte[1024]; while ((len = bis.read(buf)) != -1) { out.write(buf, 0, len); } bis.close(); fos.close(); out.closeArchiveEntry(); } }
3.3 解压7zip文件
/** * 7Zzip解压文件 * * @param zipFilePath 压缩文件 * @param unzipFilePath 解压文件路径 * @param includeZipFileName 是否包含原文件名 */ public static String un7zZip(String zipFilePath, String unzipFilePath, boolean includeZipFileName) throws Exception { if (StringUtils.isBlank(zipFilePath) || StringUtils.isBlank(unzipFilePath)) { log.info("-> 必传参数为空"); return null; } File zipFile = new File(zipFilePath); if (!zipFile.exists() || !zipFile.isFile()) { log.info("-> 要解压的文件不存在"); return null; } log.info("-> 解压的文件大小: {}", zipFile.length()); //如果解压后的文件保存路径包含压缩文件的文件名,则追加该文件名到解压路径_ if (includeZipFileName) { String fileName = zipFile.getName(); log.info("-> fileName: {}", fileName); if (!fileName.isEmpty()) { fileName = fileName.substring(0, fileName.lastIndexOf(".")); log.info("-> fileName: {}", fileName); } unzipFilePath = unzipFilePath + File.separator + fileName; } log.info("-> unzipFilePath: {}", unzipFilePath); //创建解压缩文件保存的路径 File unzipFileDir = new File(unzipFilePath); if (!unzipFileDir.exists() || !unzipFileDir.isDirectory()) { boolean crtDir = unzipFileDir.mkdirs(); log.info("-> 创建存储解压后的路径{}", crtDir); } //开始解压 String entryFilePath, entryDirPath; SevenZFile zIn = new SevenZFile(zipFile); SevenZArchiveEntry entry = null; File file = null; StringJoiner fileFullNames = new StringJoiner(","); while ((entry = zIn.getNextEntry()) != null) { if (!entry.isDirectory()) { //构建压缩包中一个文件解压后保存的文件全路径 entryFilePath = unzipFilePath + File.separator + entry.getName(); //日志 fileFullNames.add(entryFilePath); file = new File(entryFilePath); if (!file.exists()) { new File(file.getParent()).mkdirs();//创建此文件的上级目录 } //写文件 OutputStream out = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(out); int len = -1; byte[] buf = new byte[1024]; while ((len = zIn.read(buf)) != -1) { bos.write(buf, 0, len); } // 关流顺序,先打开的后关闭 bos.close(); out.close(); } } log.info("-> 解压成功: {}", fileFullNames.toString()); return unzipFilePath; }
四 zip和7zip压缩结果比对
4.1 zip压缩
4.2 7zip压缩
从结果来看,7z压缩方式压缩比更高,生成文件越小,感觉可能文件越大,效果越明显,如果只针对于我本次测试而言,我发现7z的压缩方式相对zip来说,速度慢很多,所以如果是小文件操作,还是推荐
zip
五 Zip4j
这里推荐一款操作zip的明星库Zip4j,非常的方便好用,也是我同事推荐给我的!!!
5.1 Zip4j介绍
Zip4j是用于zip文件或流的最全面的Java库。在撰写本文时,除其他一些功能外,它是唯一支持zip加密的Java库。它试图使处理zip文件/流变得更加容易。输入流和输出流不再笨拙的样板代码。正如你可以在下面的用法部分中看到,与zip文件的工作,现在即使是一个单一的代码行,比起这个。我的意思是不破坏Java的内置zip支持。实际上,该库依赖于Java的内置邮政编码,并且它本来应该更多。
复杂如果我还必须编写压缩逻辑,那就很有挑战性。但老实说,使用zip文件或流可能是很多样板代码。该库的主要目的是通过在库中进行繁重的工作来为zip文件或流的所有常规操作提供一个简单的API,而不必让开发人员担心必须处理流等。5.2 Zip4j特性
- 创建,添加,提取,更新,从zip文件中删除文件
- 支持流(ZipInputStream和ZipOutputStream)
- 读/写受密码保护的zip文件和流
- 支持AES和zip标准加密方法
- 支持Zip64格式
- 存储(无压缩)和放气压缩方法
- 从拆分的zip文件创建或提取文件(例如:z01,z02,… zip)
- 支持Unicode中的Unicode文件名和注释
- 进度监视器-用于集成到应用程序和面向用户的应用程序中
5.3 功能演示
package com.milo.zip; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.model.ZipParameters; import net.lingala.zip4j.model.enums.AesKeyStrength; import net.lingala.zip4j.model.enums.EncryptionMethod; import org.junit.Test; import java.io.File; import java.util.Arrays; import java.util.List; /** * @author Milo Lee * @date 2020-12-28 15:47 */ public class ZipTest { /** *创建zip文件,包含单个文件 */ @Test public void test1(){ try { //方式一 new ZipFile("F:\\电子书\\milolee.zip").addFile("F:\\电子书\\Head First Java 中文高清版.pdf"); //方式二 new ZipFile("F:\\电子书\\milolee.zip").addFile(new File("F:\\电子书\\Head First Java 中文高清版.pdf")); } catch (ZipException e) { e.printStackTrace(); } } /** * 创建zip文件,包含多个文件 */ @Test public void test2(){ try { new ZipFile("F:\\电子书\\milolee.zip").addFiles(Arrays.asList(new File("F:\\电子书\\Head First Java 中文高清版.pdf"), new File("F:\\电子书\\Spring源码深度解析.pdf"))); } catch (ZipException e) { e.printStackTrace(); } } /** * 创建受密码保护的zip文件 */ @Test public void test3(){ ZipParameters zipParameters = new ZipParameters(); zipParameters.setEncryptFiles(true); zipParameters.setEncryptionMethod(EncryptionMethod.AES); // Below line is optional. AES 256 is used by default. You can override it to use AES 128. AES 192 is supported only for extracting. zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256); List<File> filesToAdd = Arrays.asList( new File("F:\\电子书\\Head First Java 中文高清版.pdf"), new File("F:\\电子书\\Spring源码深度解析.pdf") ); ZipFile zipFile = new ZipFile("F:\\电子书\\milolee.zip", "milolee".toCharArray()); try { zipFile.addFiles(filesToAdd, zipParameters); } catch (ZipException e) { e.printStackTrace(); } } /** * 解压zip */ @Test public void test4(){ try { new ZipFile("F:\\电子书\\milolee.zip").extractAll("F:\\电子书\\jy"); } catch (ZipException e) { e.printStackTrace(); } } /** * 解压一个受密码保护的zip文件 */ @Test public void test5(){ try { new ZipFile("F:\\电子书\\milolee.zip", "milolee".toCharArray()).extractAll("F:\\电子书\\jy"); } catch (ZipException e) { e.printStackTrace(); } } }
更多功能,大家可以在github上面找到示例,自己动手测试
- 对bzip2,tar和zip的支持来自Avalon的Excalibur,但就Apache的生存而言,其最初来自Ant。tar包最初是Tim Endres的公共领域包。bzip2软件包基于Keiron Liddle和Julian Seward的 libbzip2所做的工作。它已通过以下方式迁移:
-
opencv-3.0.0.zip
2017-01-07 21:59:16OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 -
gradle-2.7-bin.zip 下载
2016-01-26 13:21:36Android Studio Gradle离线包下载,解决gradle project sync failed.Basic functionality(e.g.editing,debugging) will not work properly等问题 -
Ionic.Zip文件
2013-06-14 12:58:17Ionic.Zip.dll插件,解压和压缩的.dll插件 -
opencv-2.4.9.官方绿色版zip
2017-01-07 22:07:44OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 -
gradle-2.5-all.zip
2015-10-21 14:25:31官网下载不成功的,可以直接在这里下载。 原地址:https://services.gradle.org/distributions/ -
Linux中zip压缩和unzip解压缩命令使用方法
2021-05-11 03:28:02在Linux中,我们可以利用命令进行文件压缩,即zip压缩和unzip解压缩,这篇文章主要介绍了详解Linux中zip压缩和unzip解压缩命令及使用详解,本文给大家介绍的非常详细,需要的朋友可以参考下下面给大家介绍下Linux中...Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。在Linux中,我们可以利用命令进行文件压缩,即zip压缩和unzip解压缩,这篇文章主要介绍了详解Linux中zip压缩和unzip解压缩命令及使用详解,本文给大家介绍的非常详细,需要的朋友可以参考下
下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解
1、把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip mydata.zip -d mydatabak
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip wwwroot.zip
5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
unzip abc*.zip
6、查看把/home目录下面的wwwroot.zip里面的内容
unzip -v wwwroot.zip
7、验证/home目录下面的wwwroot.zip是否完整
unzip -t wwwroot.zip
8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
unzip -j wwwroot.zip
主要参数
-c:将解压缩的结果
-l:显示压缩文件内所包含的文件
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t:检查压缩文件是否正确
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
-v:执行是时显示详细的信息
-z:仅显示压缩文件的备注文字
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-C:压缩文件中的文件名称区分大小写
-j:不处理压缩文件中原有的目录路径
-L:将压缩文件中的全部文件名改为小写
-M:将输出结果送到more程序处理
-n:解压缩时不要覆盖原有的文件
-o:不必先询问用户,unzip执行后覆盖原有文件
-P:使用zip的密码选项
-q:执行时不显示任何信息
-s:将文件名中的空白字符转换为底线字符
-V:保留VMS的文件版本信息
-X:解压缩时同时回存文件原来的UID/GID
下面给大家介绍下Linux - zip压缩、unzip解压缩命令的使用详解
由于服务器使用的是 CentOS 系统,对于文件的压缩和解压缩免不了要使用命令操作,这里我对 Linux 系统下常用的 zip 和 unzip 命令做个总结。
一、zip 压缩
1,应用实例
(1)将当前文件夹下的所有文件打包成一个 new1.zip 文件
zip new1.zip *
(2)把当前文件夹下所有 my1*.doc 的文件打包成一个 new1.zip 文件
zip new1.zip my1*.doc
(3)把一个文件 abc.txt 和一个目录 dir1 压缩成为 yasuo.zip
zip -r yasuo.zip abc.txt dir1
(4)将 /home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
备注:-q 为安静模式,在压缩的时候不显示指令的执行过程
zip -qr html.zip /home/Blinux/html
(5)添加一个文件到 .zip 文件中
备注:如果当初并没有把 my32.doc 压在 new1.zip 里面,现在把它加进去。-g 选项是增加而不要重新产生的意思。
zip -g new1.zip my32.doc
(6)将更改过的文件添加到压缩包中
备注:如果当初 my2*.doc 都已经压缩进 new1.zip 里面了,但是后来 my2*.doc 中有几个文件有更改,又不想去找出到底是哪些文件更改了,这条命令请系统自行帮助检查,更改过的才更新到压缩,否则就不必动。
zip -u new1.zip my2*.doc
(7)删除除 .zip 文件中的指定文件
备注:如果当初 my18.doc 是压缩在 new1.zip 中的一个文件,现在这条命令把它从压缩文件中抽走并删掉。-d 是删除的意思。
zip -d new1.zip my18.doc
2,主要参数
-f 更新现有的文件
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-d 指定文件解压缩后所要存储的目录
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中
-r 将指定的目录下的所有子目录以及文件一起处理
-j 不处理压缩文件中原有的目录路径
-0 只存储,不压缩
-l 显示压缩文件内所包含的文件
-1 较快速度的压缩
-9 较高质量的压缩
-q 安静模式,在压缩的时候不显示指令的执行过程
-v 执行时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-z 仅显示压缩文件的备注文字
-@ 从标准输入中读取名称,一个路径名称用一行
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-x 指定不要处理.zip压缩文件中的哪些文件
-i 只压缩符合条件的文件
-F 尝试修复损坏的压缩文件
-D 压缩文件内不建立目录名称
-A 调整可执行的自动解压缩文件
-J 删除可执行文件,留下一个普通的 zip 归档文件
-T 检查备份文件内的每个文件是否正确无误
-X 解压缩时同时回存文件原来的 UID/GID
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在 UNIX 之类的系统下有效
-e 加密
-n 不压缩具有特定字尾字符串的文件
-h2 显示更多帮助
二、unzip 解压缩
1,应用实例
(1)把文件解压到当前目录下
unzip test.zip
(2)如果要把文件解压到指定的目录下,需要用到-d参数。
unzip -d /temp test.zip
(3)解压的时候,有时候不想覆盖已经存在的文件,那么可以加上 -n 参数
unzip -n test.zip
unzip -n -d /temp test.zip
(4)将压缩文件 test.zip 在指定目录 tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令覆盖原先的文件
unzip -o test.zip -d /tmp/
(5)只看一下 zip 压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
(6)查看显示的文件列表还包含压缩比率
unzip -v test.zip
(7)检查 zip 文件是否损坏
unzip -t test.zip
2,主要参数
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与 -c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-l 显示压缩文件内所包含的文件
-f 更新现有的文件
-t 检查压缩文件是否正确,但不解压
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-z 仅显示压缩文件的备注文字
-v 执行时显示详细的信息。或查看压缩文件目录,但不解压
-T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间
-x 指定不要处理 .zip 压缩文件中的哪些文件
-d 指定文件解压缩后所要存储的目录
-n 解压缩时不要覆盖原有的文件
-q 安静模式,执行时不显示任何信息
-o 不必先询问用户,unzip 执行后覆盖原有文件
-a 对文本文件进行必要的字符转换
-j 不处理压缩文件中原有的目录路径
-aa 把所有的文件目录当作文本处理
-U use escapes for all non-ASCII Unicode
-UU 忽略 Unicode 编码字符
-C 压缩文件中的文件名称区分大小写
-L 将压缩文件中的全部文件名改为小写
-X 解压缩时同时回存文件原来的 UID/GID
-V 保留 VMS 的文件版本信息
-K 保留文件的 setuid/setgid/tacky 属性
-M 将输出结果送到 more 程序处理
-O 指定字符编码为 DOS,Windows 和 OS/2
-I 指定字符编码为 UNIX
补充:Linux基本命令
①ls 意为list 列出当前文件夹中的文件
-l 显示文件的属性 可用ll来表示
②alias 别名 看看是否有别名的文件
③cd dir 跳跃目录 -P选项 将路径中的链接文件替换成链接指向的文件路径
④pwd 查看当前工作的文件夹名 使用-P的选项,会直接进入到其中,相当于cd
相关阅读:Linuxshell脚本不执行问题实例分析
shell脚本不执行问题:某天研发某同事找我说帮他看看他写的shell脚本,死活不执行,报错。我看了下,脚本很简单,也没有常规性的错误,报“:badinterpreter:Nosuchfileordirectory”错。看这错,我就问他是不是在windows下编写的脚本,然后在上传到linux服务器的……果然。原因:在DOS/windows里,文本文件的换行符为rn,而在*nix系统里则为n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个^M。解决:
1)重新在linux下编写脚本;
2)vi:%s/r//g:%s/^M//g(^M输入用Ctrl+v,Ctrl+m)附:sh-x脚本文件名,可以单步执行并回显结果,有助于排查复杂脚本问题。
Linux中zip压缩和unzip解压缩命令相关文章:
-
Android开机动画包bootanimation.zip
2015-04-22 17:14:21里面包含自己收集的android开机动画包bootanimation,以及自己用图片制作的bootanimation -
dubbo-master.zip包,解压可用
2015-12-24 19:21:18dubbo-master.zip包,解压可用 -
gtest-1.7.0.zip
2014-07-08 21:54:49google test 源代码 欢迎下载 google test 源代码 欢迎下载 google test 源代码 欢迎下载 google test 源代码 欢迎下载 google test 源代码 欢迎下载 -
CentOS安装zip和zip压缩和unzip解压缩命令详解
2021-05-12 14:51:07原标题:CentOS安装zip和zip压缩和unzip解压缩命令详解 如果没有安装解压缩,请写安装解压和压缩ssh:yum -y install zip unzip以下命令均在/home目录下操作cd /home #进入/home目录1、把/home目录下面的mydata目录...原标题:CentOS安装zip和zip压缩和unzip解压缩命令详解
如果没有安装解压缩,请写安装解压和压缩
ssh:yum -y install zip unzip
以下命令均在/home目录下操作
cd /home #进入/home目录
1、把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip mydata.zip -d mydatabak
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip wwwroot.zip
5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
unzip abc*.zip
6、查看把/home目录下面的wwwroot.zip里面的内容
unzip -v wwwroot.zip
7、验证/home目录下面的wwwroot.zip是否完整
unzip -t wwwroot.zip
8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
unzip -j wwwroot.zip
系统运维 温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接
=====================================================
主要参数
-c:将解压缩的结果
-l:显示压缩文件内所包含的文件
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t:检查压缩文件是否正确
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
-v:执行是时显示详细的信息
-z:仅显示压缩文件的备注文字
-a:对文本文件进行必要的字符转换
-b:不要对文本文件进行字符转换
-C:压缩文件中的文件名称区分大小写
-j:不处理压缩文件中原有的目录路径
-L:将压缩文件中的全部文件名改为小写
-M:将输出结果送到more程序处理
-n:解压缩时不要覆盖原有的文件
-o:不必先询问用户,unzip执行后覆盖原有文件
-P:使用zip的密码选项
-q:执行时不显示任何信息
-s:将文件名中的空白字符转换为底线字符
-V:保留VMS的文件版本信息
-X:解压缩时同时回存文件原来的UID/GID
linux操作系统下怎样解压rar文件
rar格式的文件是在windows操作系统中常见的压缩格式,但是这种格式在linux操作系统中却不能正常解压缩,因为linux默认不支持这种格式,难道我们在linux操作系统中就不能解压这种文件了吗,答案只有一个,能,那么我们怎样在linux操作系统中解压rar文件呢?(以fedora操作系统为例)
方法/步骤
首先解压rar文件需要unrar命令,要使用这种命令我们必须安装rarlinux,我们可以在终端使用yum installrar,如果没有可安装的程序包,我们可以自行下载,上网搜搜就能搜到。
安装rarlinux,安装此程序必须使用root身份才能安装,首先我们要以root身份运行,然后打开下载目录,使用tar命令解压缩rarlinux文件,当然你可以选择解压缩的位置,为了方便,小编就解压在了当前目录。
解压完成后我们便要安装它,首先我们要打开刚才解压的那个文件夹,然后使用make命令进行安装,我们可以看到一些安装的程序在运行,等光标移动到命令输入行,证明我们已经安装成功了。
接来下我们就可以解压缩rar文件了,我们可以使用unrar命令来解压缩,当然首先你要确保rarlinux安装成功了,否则不能使用unrar命令。具体命令如下图所示,这样就把amp.rar里面的压缩文件都解压在了下载目录中,如果你想解压在别的地方,可以更改命令,小编就在这里阐述了
其实还有一种更简单的解压缩方法,就是直接右键解压缩到此处(前提条件就是你必须安装了rarlinux,如果没有安装,点击解压缩会出现找不到程序),用它解压的好处就是直接把它里面的内容解压到了与它同名的文件夹中。
END
注意事项
fedora 64位操作系统中安装rar的时候一定要注意,需要下载rarlinux64位的安装包,如果下载的是32位的,可能会出现"没有那个文件或者目录"的错误
当你安装的是32位的rarlinux的时候你解压rar文件可能会是空文件,这并不是你的rar文件有损坏,而是你的unrar没有安装成功。
相比于使用命令解压,直接右键解压更加方便返回搜狐,查看更多
责任编辑:
-
7-zip for MAC
2013-06-04 00:01:287-zip for MAC 文件压缩包实用程序 -
python zip压缩文件
2020-09-28 17:39:44# 否则压缩目录 zip = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) zip_test(zip, dir_name) zip.close print('目录压缩成功') def zip_test(zip, name): for item in os.listdir(name): file_path = ... -
phantomjs-2.1.1-windows.zip绿色版
2016-03-01 16:45:00受够了官网速度的,可以下载这个。 原链接:https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip -
gradle-3.5-all.zip 官方绿色版
2017-04-13 22:33:02官网下载不成功的,或者嫌官网下载速度慢的,可以直接在这里下载。 官网原下载地址:https://services.gradle.org/distributions/ -
spring-framework-4.2.0.RELEASE-dist.zip
2015-08-10 22:51:05spring-framework-4.2.0.RELEASE-dist.zip spirng 最新 完整包 包含源码 更新时间:2015-8-10 22:33:31 同时更新的还有: 最新struts2: 最新hibernate:http://download.csdn.net/detail/angel_he/8987791
-
<em>zip</em>.rarjava文档压缩功能,通过<em>zip</em>进行压缩并附带密码
-
Karl.<em>zip</em><em>zip</em> and sip download and rock and roll
-
MobelXTerm.<em>zip</em>MobelXTerm.<em>zip</em> ssh 远程控制虚拟机
-
42.<em>zip</em>lol funny <em>zip</em> open it
-
<em>zip</em>4j.<em>zip</em>从<em>Zip</em>文件创建,添加,提取,更新,删除文件 读/写密码保护的<em>Zip</em>文件 支持AES 128/256加密 支持标准邮??编加密 支持<em>Zip</em>64格式