linux的unzip源码(ubuntu unzip命令)
本文目录一览:
- 1、Linux中unzip解压时中文乱码如何解决
- 2、Linux中zip压缩和unzip解压缩命令详解
- 3、怎么获取linux下压缩zip命令的实现源码
- 4、linux下unzip -j命令?
- 5、如何在Linux下安装zip文件
- 6、linux zip 压缩命令 解压命令 unzip
Linux中unzip解压时中文乱码如何解决
更改源码解决乱码
调试发现问题出现在MultiByteToWideChar方法里,
如 MultiByteToWideChar(CP_ACP,0,fn,-1,tfn,MAX_PATH); 到这里时fn中的name属性值还是正常的,在这个方法内部执行完tfn就乱了。
解决方法:
打开unzip.cpp源文件,找到函数
ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
{ // ......
// ......} 12345
这个函数里有
#ifdef UNICODE
MultiByteToWideChar(CP_UTF8,0,fn,-1,tfn,MAX_PATH);#else
strcpy(tfn,fn);#endif12345
把 CP_UTF8 改为CP_ACP, ( CP_ACP 指示要使用当前设置的 API 默认 Windows ANSI 代码页)
重新编译后
这样就解决了解压中文文件名称乱码的问题
编译时解决源码问题(无需更改源码)
上面的情况,我们我观察到unzip源代码这段开始的地方有判断
#ifndef Ext_ASCII_TO_Native 1
这样问题似乎更简单了,不用改源代码,只需在make时定义 Ext_ASCII_TO_Native 即可,这样 Ext_ASCII_TO_Native 实际为一个空的宏,不进行任何转换操作。
比如,使用下面的方法编译
make -DExt_ASCII_TO_Native 1
或者在bash执行下面两行
export LOCAL_UNZIP=-DExt_ASCII_TO_Native
make12
unzip解压缩含中文文件名zip包是出现乱码的问题解决!
如果您的系统已经安装了unzip
方法一 unzip行命令解压,指定字符集
通过unzip行命令解压,指定字符集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)1
方法二 在环境变量中,指定unzip参数
在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入2行
UNZIP=”-O CP936″
ZIPINFO=”-O CP936″12
方法三 利用pyton来处理
复制以下内容(Python)保存未myuzip.py文件脚本,并修改运行权限为可运行(chmod +x uzip)
#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprint "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist():
utf8name=name.decode('gbk') print "Extracting " + utf8name
pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name) if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()
这样以后我们解压缩时只需要运行此文件即可
./myuzip.py xxxx.zip
Linux中zip压缩和unzip解压缩命令详解
这篇文章主要介绍了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命令的实现源码
可以使用zip命令,解压使用unzip命令
zip命令使用方法:zip -r conf.zip /etc/sshd.conf
上述命令意思是 使用zip压缩/etc/sshd.conf文件,压缩名为conf.zip
linux下unzip -j命令?
Linux unzip命令用于解压缩zip文件
-j 不处理压缩文件中原有的目录路径。我想你说的是这个,你试试看吧 看看《Linux就该这么学》 里面有个专栏是 Linux命令大全(手册
如何在Linux下安装zip文件
Linux中unzip命令用于zip文件的解压。unzip命令参数最常用的,就是那个指定压缩文件内容解压到哪个文件夹的参数,也就是指定解压缩的目标目录,这个参数是-d,例子:
unzip test.zip -d /home/user/target
解压完成后,如果是源代码就需要编译安装,不过一般源码都是tar包打包的,很少有用zip打包的;有的zip直接就是一个二进制文件包,可以直接运行的,这时候把zip文件解压后的路径加入到PATH变量或者加一个alias别名就可以了。
linux zip 压缩命令 解压命令 unzip
linux
zip命令的基本用法是:
zip
[参数]
[打包后的文件名]
[打包的目录路径]
linux
zip命令参数列表:
-a
将文件转成ASCII模式
-F
尝试修复损坏的压缩文件
-h
显示帮助界面
-m
将文件压缩之后,删除源文件
-n
特定字符串
不压缩具有特定字尾字符串的文件
-o
将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q
安静模式,在压缩的时候不显示指令的执行过程
-r
将指定的目录下的所有子目录以及文件一起处理
-t
日期
把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
举例:
将/home/Blinux/html/
这个目录下所有文件和文件夹打包为当前目录下的html.zip
zip
–q
–r
html.zip
/home/Blinux/html
上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录
比如目前在Bliux