Linux下的zip命令的使用
参考资料:http://no001.blog.51cto.com/1142339/547862 # zip -P 123456 test.zip test.txt-P 123456 是加密密码(-P必须用大写,否则无效!!)test.zip 是生成的压缩文件test.txt 是被压缩的文件zip [参数]使用zip格式打包文件 -r 递归,将指定目录下
参考资料: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;
}
更多推荐
所有评论(0)