MATLAB中unzip出错,unzip文件时提示symlink error: File name too long问题

github 上下载的ZIP包在linux下用unzip解压缩,总会出错,提示 symlink error: File name too long

在OSX上解压吧,OSX的HFS+文件系统是不区分大小写的,而linux文件系统是区分大小写的,这就会造成文件 Fuck.TXT 会被 fuck.txt 覆盖的悲惨命运。

google了下,发现这是unzip软件包的历史遗留bug,sourceforge 上显示最后更新是 unzip60.tar.gz,更新时间是 2009-04-30

得打补丁: unzip-fix-symlink-filename-too-long.patch

--- a/process.c2014-07-11 18:02:34.671611514 +0800

+++ b/process.c2014-07-11 18:03:09.639609859 +0800

@@ -1751,6 +1751,12 @@

= (G.crec.general_purpose_bit_flag & (1 << 11)) == (1 << 11);

#endif

+#ifdef SYMLINKS

+ /* Initialize the symlink flag, may be set by the platform-specific

+ mapattr function. */

+ G.pInfo->symlink = 0;

+#endif

+

return PK_COOL;

} /* end function process_cdir_file_hdr() */

安装:

# patch -Np1 unzip-fix-symlink-filename-too-long.patch

# make -f unix/Makefile generic CC="gcc -DUSE_BZIP2 -lbz2"

# make -f unix/Makefile prefix=/usr install

BTW:用busybox自带的unzip解压没问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值