外壳初始化问题,当点击选项卡,有什么错GETCWD?(shell init issue when c

2019-07-31 11:13发布

有一次,我点击的bash选项卡,将出现错误消息,有什么不对?

symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success

有时,该错误消息为:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No s uch file or directory

如何解决外壳初始化问题?

Answer 1:

这通常发生在你的当前目录已经不存在发生。 最有可能的,从另一端删除该目录(从脚本或任何内)。 为了摆脱这种,如果当前目录是在此期间重新创建,只是cd到另一个(现有)的目录,然后cd回来; 最简单的是: cd; cd - cd; cd -



Answer 2:

只要改变目录到另外一台回来。 可能是一个已被删除或移动。



Answer 3:

一次偶然的机会,这是发生在使用OverlayFS(或其他一些特殊的文件系统类型)的目录?

我只是有这个问题,即猛砸我的交叉编译版本,将使用内部实现的getcwd其中有OverlayFS问题。 我发现这方面的信息在这里:

看来,这可以追溯到内部实现GETCWD的()在bash。 当交叉编译,它不能检查GETCWD()使用malloc,所以它是谨慎,并设置GETCWD_BROKEN并使用内部实现GETCWD的()。 该内部实现似乎并不与OverlayFS很好地工作。

http://permalink.gmane.org/gmane.linux.embedded.yocto.general/25204

您可以配置和与重建的bash bash_cv_getcwd_malloc=yes (如果你实际构建bash和你的C库的malloc没有一个GETCWD调用)。



Answer 4:

是的,CD; 和CD - 会工作。 究其原因,可以看到的是,目录被从任何其他终端或任何其他程序删除和重新创建它。 所以i节点表项被修改,使得程序不能访问旧的i-node条目。



文章来源: shell init issue when click tab, what's wrong with getcwd?