b2c信息网

您现在的位置是:首页 > 今日新闻 > 正文

今日新闻

linux的unzip源码(ubuntu unzip命令)

hacker2022-07-02 12:44:26今日新闻107
本文目录一览:1、Linux中unzip解压时中文乱码如何解决2、

本文目录一览:

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

发表评论

评论列表

  • 南殷月棠(2022-07-03 00:18:58)回复取消回复

    并修改运行权限为可运行(chmod +x uzip)#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprin