在golang(以及bash脚本)中,如果我更改当前工作目录(使用os.Chdir)它可以工作,但是当程序终止时,工作目录会重置到程序启动时的位置。
这很有意义,但我想要做的是一个智能的磁盘导航器(类似于我们原来的老式ncd,“Norton Change Directory”)。
如何告诉二进制文件(或启动它的shell,或其他什么)不要重置为上一个工作路径?
我想完全从Go二进制文件中实现,而不需要修改.bashrc或.zshrc(以便于移植)
答案 0 :(得分:9)
每个流程的工作目录都是流程私有的。
你必须跳循环才能实现这一目标。例如,您的程序可以编写一个脚本(文件),该脚本可以在程序终止之后从调用程序的脚本中执行。
另一种不那么黑客的方法是:
$ cd $(prog)
其中prog将新wd写入stdout。