bash 不足 cmd 来凑
git bash 命令行终端和 windows 系统自带的 cmd 命令行终端互为补充,某些 git bash 命令没有并不意味着 cmd也没有,所以遇到 git bash 无某些命令的情况下,首先应该去看看 cmd 有没有这个命令.
如果碰巧 cmd 存在该命令,那么既可以在 cmd 中直接运行该命令,也可以在 git bash 中借助 winpty+cmd原生命令 方式调用该命令.
示例:
F:\workspace\git-bash-extend>tree
卷常用的文件夹 PATH 列表
卷序列号为62AE-62CA
F:.
├─extend-cmd
├─extend-gitforwindows-sdk
└─extend-gnuwin
cmd 命令行中有 tree 命令,不过该命令的后缀名是 .com 而不是 .exe.
Administrator@snowdreams1006 MINGW64 /f/workspace/git-bash-extend
$ winpty tree.com
卷常用的文件夹 PATH 列表
卷序列号为62AE-62CA
F:.
├─extend-cmd
├─extend-gitforwindows-sdk
└─extend-gnuwin
git bash 命令行中没有 tree 命令,通过调用 cmd 命令行中的 tree.com 命令变相支持 tree 命令.
bash 没有 gnuWin 填补
如果 git bash 命令行中没有的命令, cmd 也没有的话,那么应该想办法扩展 git bash 命令,最简单的方式是找同源的命令.
正所谓"物以类聚人以群分",如果有现成的命令可以直接扩展过来,岂不是很方便,幸运的是, gnuwin 开源项目适用于 git!
我们可以从 gnuwin32 项目下载所需的扩展命令并复制到 git bash 的安装位置下面的 /usr/bin 目录下即可轻松扩展更多命令.
示例:
Administrator@snowdreams1006 MINGW64 /f/workspace/git-bash-extend
$ tree
.
├── extend-cmd
│ └── cmd.md
├── extend-gitforwindows-sdk
│ └── gitforwindows-sdk.md
└── extend-gnuwin
└── gnuwin.md
3 directories,3 files
轻松扩展的 tree 命令,功能更强大更像 linux 系统的 tree 命令.