Windows 10 Git Bash中unzip命令解压文件冲突问题咨询
问题根因
这是Windows版Git Bash内置的unzip工具的适配特性导致的:
- 为了兼容Windows系统的可执行文件自动匹配逻辑,Windows移植版的
unzip默认开启了可执行后缀匹配规则,会将.exe/.com/.bat等后缀的文件和同名无后缀文件判定为同一文件。 - 触发冲突的顺序差异和判定逻辑有关:当先存在无后缀文件时,unzip不会将后续的带后缀文件判定为重复;但先存在带.exe后缀的文件时,后续的同名无后缀文件会被判定为重复,触发替换提示。
- Linux环境和Windows原生解压工具没有内置这个适配规则,因此不会复现问题。
解决方案
临时解决(单次解压生效)
执行命令时添加参数关闭可执行后缀匹配逻辑即可:
unzip -W myzip.zip
如果本地安装了7z,也可以直接用7z解压,不存在该适配问题:
7z x myzip.zip
永久解决
在Git Bash的用户配置文件(~/.bashrc或~/.bash_profile)中添加unzip的别名,默认关闭后缀匹配:
echo "alias unzip='unzip -W'" >> ~/.bashrc source ~/.bashrc
配置完成后后续直接执行unzip myzip.zip就不会触发该类冲突。
内容的提问来源于stack exchange,提问作者SMt
相关产品推荐
相关产品推荐

