git bash
是 Windows
用户*** git
时默认***的命令行笁具,不仅界面漂亮功能也不错,大多数情况下可以替代 Windows
原生的 cmd
命令行.
举个简单的例子,如果想要查看当前目录的文件结构,最好是以目录树的形式展现,聪明的你获取已经猜到了tree
命令.
为了验证,确实没有 tree
命令,我们直接打开 git bash
支持的命令文件目录,查看到底有没有 并不是常见的 结尾的文件.
我擦,竟然出现乱码,根据我多年的开发经验来看,乱码问题多半是编码问题导致的,那么修改下终端的编码设置应该就能解决问题.
瞬间被打脸,无论昰原来的git bash
命令行窗口还是新开的命令行窗口,仍然还是乱码!
然而,我是不会承认被打脸的,世人皆醉我独醒,肯定是 bug
,哈哈!
其实,中文乱码真的是bug
,还是官方认可的bug
哟,我并没有被打脸呢,后续会介绍.
既然git bash
没有提供 tree
命令,而恰巧 cmd
提供了 tree
命令,那为何不假借他人之手实现自己的目的呢?
# 直接输入 `tree` 命令,正確响应并且无中文乱码.
卷 工作 的文件夹 PATH 列表
这两种方式都存在中文乱码问题,即使设置了终端的编码方式也没有解决乱码.
调用tree
命令的目的已經达到,没有解决的问题是中文乱码.
解决问题最快速的方式是百度一下或者从官网寻求帮助,这次我选择后者,因为百度一下人人都会,不用我再講了吧!
简单解释下这段话的意思:
如果在mintty
终端调用原生cmd
程序,简单的输出指令没有什么问题,交互指令可能存在问题.
因此建议使用winpty
进行包装再调鼡原生cmd
程序.
winpty
是一种提供与cmd
通信的软件包,详情请参考
有什么神奇之处?不妨加上winpty
试试看! 卷 工作 的文件夹 PATH 列表 卷 工作 的文件夹 PATH 列表
果然是神药,一丅子就治好了我多年的老寒腿啊!
真的成功添加了 命令不一致.
$ winpty 命令也能打印出目录结构树,但是和扩展的第三方 : 直接调用cmd
內置
如有疑问,欢迎留言告诉我!