有时候在使用git bash的终端时,想在终端中直接打开该位置的文件资源管理器,这个时候就可以用Go来实现一个这样的小程序,使用起来还是很方便的。
package main
import (
"fmt"
"os"
"os/exec"
"strings"
)
func main() {
argLen := len(os.Args)
dirName, err := os.Getwd()
if err != nil {
fmt.Println("Get Current Working Directory error, ", err)
return
}
separator := string(os.PathSeparator)
if argLen == 2{
if os.Args[1] == ".." {
// path包对于处理windows路径不起作用
index := strings.LastIndex(dirName, separator)
dirName = dirName[:index]
} else if os.Args[1][0] == '.' && os.Args[1][1] == '/' {
relativePath := os.Args[1][2:]
relativePath = strings.ReplaceAll(relativePath, `/`, `\`) //`
dirName = dirName + separator + relativePath
} else {
dirName = os.Args[1]
}
}
fmt.Println(dirName)
exec.Command(`cmd`, `/c`, `explorer`, dirName).Start()
}
编译完成后,将可执行文件命名为open.exe,然后放在git bash根目录的/usr/bin下。这样在终端中输入open 、 open .. 或 open 绝对路径 或 相对路径 ,就可以在文件资源管理器中打开当前目录、上一级目录或指定路径了