一旦我点击bash上的Tab,就会出现错误信息,出了什么问题?
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
如何解决shell init问题?
答案 0 :(得分:249)
当您当前目录不再存在时,通常会发生这种情况。很可能,从另一个终端删除该目录(从脚本或其他内容)。要摆脱这种情况,如果在此期间重新创建了当前目录,只需cd
到另一个(现有)目录,然后再cd
返回;最简单的是:cd; cd -
。
答案 1 :(得分:52)
只需将目录更改为另一个目录即可返回。可能已删除或移动了一个。
答案 2 :(得分:4)
偶然地,这是在使用OverlayFS(或其他特殊文件系统类型)的目录上发生的吗?
我刚遇到这个问题,我的交叉编译版本的bash将使用getcwd
的内部实现,这与OverlayFS有问题。我在这里找到了相关信息:
这似乎可以追溯到内部实现 bash中的getcwd()。交叉编译时,它无法检查getcwd()的使用情况 malloc,所以它是谨慎的并设置GETCWD_BROKEN并使用 getcwd()的内部实现。这个内部实现 似乎与OverlayFS无关。
http://permalink.gmane.org/gmane.linux.embedded.yocto.general/25204
您可以使用bash_cv_getcwd_malloc=yes
配置和重建bash(如果您实际构建bash并且您的C库执行malloc getcwd调用)。
答案 3 :(得分:3)
是的,cd;和CD - 会工作。 它可以看到的原因是,目录正在从任何其他终端或任何其他程序中删除并重新创建它。因此,i节点条目被修改,因此程序无法访问旧的i节点条目。