Golang:Chdir并在程序终止时留在那里

时间:2013-06-10 14:29:20

标签: go

在golang(以及bash脚本)中,如果我更改当前工作目录(使用os.Chdir)它可以工作,但是当程序终止时,工作目录会重置到程序启动时的位置。

这很有意义,但我想要做的是一个智能的磁盘导航器(类似于我们原来的老式ncd,“Norton Change Directory”)。

如何告诉二进制文件(或启动它的shell,或其他什么)不要重置为上一个工作路径?

我想完全从Go二进制文件中实现,而不需要修改.bashrc或.zshrc(以便于移植)

1 个答案:

答案 0 :(得分:9)

每个流程的工作目录都是流程私有的。

你必须跳循环才能实现这一目标。例如,您的程序可以编写一个脚本(文件),该脚本可以在程序终止之后从调用程序的脚本中执行。

另一种不那么黑客的方法是:

$ cd $(prog)

其中prog将新wd写入stdout。