Linux下的zip命令的使用

原创 2012年03月21日 12:20:12

参考资料:http://no001.blog.51cto.com/1142339/547862

 # zip -P 123456 test.zip test.txt

-P 123456 是加密密码(-P必须用大写,否则无效!!)
test.zip 是生成的压缩文件
test.txt 是被压缩的文件

zip [参数] <压缩包> <源文件>

使用zip格式打包文件
   
-r 递归,将指定目录下的所有文件和子目录一并处理
    -S 包含系统和隐藏文件
    -y 直接保存符号连接,而非该连接所指向的文件
    -X 不保存额外的文件属性
    -m 将文件压缩并加入压缩文件后,删除源文件
    -<压缩级别> 1~9,数字越大,压缩率越高
    -F 尝试修复已损坏的压缩文件
    -T 检查备份文件内的每个文件是否正确无误
    -q 不显示指令执行过程
    -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
    -u 更新压缩包内文件
    -f 更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加
    -$ 保存第一个被压缩文件所在磁盘的卷标
    -j 只保存文件名称及其内容
    -D 压缩文件内不建立目录名称
    -i <表达式> 压缩目录时,只压缩符合条件的文件
    -x <表达式> 排除符合条件的文件
    -n <文件名后缀> 排除指定文件名后缀的文件(不压缩具有特定字尾字符串的文件)
    -b <缓存路径> 指定临时文件目录
    -d <表达式> 从压缩文件内删除指定的文件
    -t <日期时间> 把压缩文件的日期设成指定的日期
    -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同
    -A 调整可执行的自动解压缩文件
    -c 替每个被压缩的文件加上注释
    -z 替压缩文件加上注释
    -k 使用MS-DOS兼容格式的文件名称。
    -l 压缩文件时,把LF字符置换成LF+CR字符。
    -ll 压缩文件时,把LF+CR字符置换成LF字符。

unzip [参数] <压缩文件> [压缩包中将被释放的文件]

解压zip压缩包文件
    -P <密码> zip压缩包的密码
    -d <路径> 指定解压路径
    -n 解压缩时不覆盖原有文件
    -f 覆盖原有文件
    -o 不经询问,直接覆盖原有文件
    -u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
    -l 显示压缩文件内所包含的文件
    -t 检查压缩文件是否正确
    -z 显示压缩包注释
    -Z unzip -Z等于执行zipinfo指令
    -j 不处理压缩文件中原有的目录路径
    -C 压缩文件中的文件名称区分大小写
    -L 将压缩文件中的全部文件名改为小写
    -s 将文件名中的空格转换下划线
    -X 解压缩时保留文件原来的UID/GID
    -q 执行时不显示任何信息
    -v 执行是时显示详细的信息
    -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
    -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
    -a 对文本文件进行必要的字符转换
    -b 不要对文本文件进行字符转换
    -x <表达式> 处理里排除压缩包中的指定文件
    -M 将输出结果送到more程序处理


相关命令行(环境:Mac OS 10.7.2 Lion, eclipse):

package org.bruce.file.handle.config;


/**
 * @author Bruce Yang
 * zip 命令不支持 -I, -S 参数~
 */
public interface IZipCompleteCmd {
	
	// 将当前目录下的所有文件盒文件夹全部压缩成 myFile.zip 文件,-r表示递归压缩子目录下所有文件~
	public final String _zipCurrentDir = 
		"zip -r /Users/user/Desktop/Desktop.zip /Users/user/Desktop/*";
	
	// 递归,密码~
	public final String _zipWithPwd = 
		"zip -r -P 12345 /Users/user/Desktop/Desktop.zip /Users/user/Desktop/*";
	
	// 删除 zip 压缩包里面特定格式的文件~
	public final String _zipDeleteSpecifiedFormatFiles = 
		"zip -d /Users/user/Desktop/Y3wFramework.zip *.java";
	
	// 删除 zip 压缩包里面特定格式的文件(正则匹配)~
	/** 注释:?表示一个字符,如果用 * 表示任意多个字符 */
	public final String _zipDeleteSpecifiedFormatFiles2 = 
		"zip -d /Users/user/Desktop/Y3wFramework.zip *.j?va";
	
	// 你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
	public final String _zipMutilpeFilesOrDirs = 
		"zip -r filename.zip file1 file2 file3 /Users/user/Desktop/test";
	
	
	// 我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:
	public final String _unzipPreivewLargeZip = 
		"unzip -v /Users/user/Desktop/Y3wFramework.zip";
	
	
	/** 
	 * 我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,
	 * 我想把这些文件都下载到第一级目录,而不是一层一层建目录:
	 * 注意:不可胡乱执行,到时候满屏的文件~~
	 */
	public final String _unzipReconstructZipStructure = 
		"unzip -j /Users/user/Desktop/123/Y3wFramework.zip";
	
	
	// 我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了
	public final String _unzipTestDownloadCompleted = 
		"unzip -t /Users/user/Desktop/Y3wFramework.zip";
	
	
	
}

package org.bruce.file.handle.config;


/**
 * @author Bruce Yang~
 * 配置采用哪种备份方案~
 */
public interface IBakupHelper {
	public enum Solution {
		CopyWithJava,
		CopyWithTerminal, 
		ZipWithJava,
		ZipWithTerminal,
    }; 
	
//    public final Solution CHOICE = Solution.CopyWithJava;
//    public final Solution CHOICE = Solution.CopyWithTerminal;
//    public final Solution CHOICE = Solution.ZipWithJava;
	public final Solution CHOICE = Solution.ZipWithTerminal;
	
	// 递归~
	public final String _zipRecursively = "zip -r ";
	
	// 递归,删除源文件~
	public final String _zipRemoveSource = "zip -r -m ";
	
	// 递归,不显示指令执行过程~
	public final String _zipQuietly = "zip -r -q ";
	
	// -n <文件名后缀> 排除指定文件名后缀的文件(不压缩 而非 排除在压缩包外)
	// 适用于单个筛选,多个怎么弄?麻痹的终于试出来了,连接符要用 “:”
	// 如果以 : 结尾的话,会导致所有的文件都不被压缩(可能是因为""任何字符串的原因)~
	public final String _zipIncludeButDontCompress = 
		"zip -r -n .project:txt:pdf:prefs:classpath:sql:mid:.wav:.properties ";
	
	
	/** 要注意区分表达式和文件名后缀的区别!! -x 表示不将某些文件置入压缩包! */
	public final String _zipExcludeDirectly = 
		"zip -x *.java *.class *.jar *.wav *.mp3 *.mid -q -r ";
	
	
	// -<压缩级别> 1~9,数字越大,压缩率越高
	public final String _zipLargest = "zip -r -1 ";
	public final String _zipSmallest = "zip -r -9 ";
	
	// 查看压缩包的内容列表~
	public final String _unzipEcho = "unzip -v ";
	
	// 作用未知,能够正常执行,不知有何玄妙~
	public final String _zipWithoutDirStruct = "zip -D -r ";
	
	
	public String _zipCmdCurrentUsed = _zipQuietly;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux中zip压缩和unzip解压缩命令详解

Linux中zip压缩和unzip解压缩命令详解1、把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2、...
  • a19860903
  • a19860903
  • 2015年07月01日 16:39
  • 18588

Linux下如何使用zip压缩、解压和加密

Linux下如何使用zip压缩、解压和加密 一般linux下都默认安装了zip解压缩,通常格式如下(包含详细的参数中文解释): # zip -rP abc#123 test.zip t...
  • u011608191
  • u011608191
  • 2015年01月23日 18:05
  • 5961

linux zip,linux下打包zip文件

linux zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径]linux zip命令参数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏的压缩文件   ...
  • wangking717
  • wangking717
  • 2010年06月12日 10:55
  • 35045

Linux zip 加密压缩

最近需要将商户数据文件zip后提供给合作伙伴下载,为了防止数据泄露在zip的时候进行了加密,使用命令如下:[root@w01 groupon_cn]# zip yule shop_20160303.z...
  • FX_SKY
  • FX_SKY
  • 2016年03月03日 15:30
  • 4385

Linux下的压缩zip,解压缩unzip命令详解及实例

原文链接  http://www.cnblogs.com/zdz8207/p/3765604.html Linux下的压缩解压缩命令详解及实例 实例:压缩服务器上当前目录的内容...
  • andychiu
  • andychiu
  • 2017年06月29日 15:18
  • 1658

Linux压缩打包命令

tar命令 [root@linux ~]#
  • MPU
  • MPU
  • 2007年06月04日 12:29
  • 61058

linux压缩(解压缩)命令详解

linux压缩(解压缩)命令详解注:本文参考自互联网,但是经过笔者的修改一.tar命令         tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在...
  • hbcui1984
  • hbcui1984
  • 2007年04月25日 10:17
  • 174616

linux zip命令

From:http://hi.baidu.com/jorling/blog/item/13db7bec1c38a1d32e2e21d3.html文件压缩和归档有时候,我们需要把一组文件贮存成一个文件以...
  • apaolove
  • apaolove
  • 2008年04月14日 16:27
  • 50381

Linux 下zip包的压缩与解压

先说压缩再说解压 linux zip 命令详解 功能说明:压缩文件。 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b ][-ll][-n ][-t ]...
  • jzp12
  • jzp12
  • 2012年05月11日 22:15
  • 5625

p3006854_9204_linux.zip

  • 2008年03月28日 15:25
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下的zip命令的使用
举报原因:
原因补充:

(最多只允许输入30个字)