在我的系统上,我安装了zsh和tcsh。我通常使用zsh,但有些脚本使用tcsh。通常,在终端窗口中,如果我输入
tcsh
mec-0569x:~>
我按预期得到提示。但是,如果终端窗口已经打开了一段时间,我输入了tcsh,我得到
tcsh
tcsh: No such file or directory
tcsh: Trying to start from "/home/james"
mec-0569x:~>
我不确定它是否与窗口打开的时间或我在窗口中运行的特定脚本有关,但是如果我关闭终端窗口并打开一个新窗口,请将目录更改为该文件夹我在,它完美无缺。我应该寻找什么来解决这个问题?
答案 0 :(得分:1)
问题可能是您所在的目录已被删除,并且之后创建了一个具有相同路径名的新目录。
这是不相同的目录; getcwd()
使用inode获取目录的路径名,此新目录具有不同的inode,并且想要使用的inode getcwd()
不再存在。
键入tcsh
时,它从父进程继承(不存在)工作目录;在启动时,tcsh
想要chdir()
到当前工作目录,但这不再存在,所以你得到一个错误(它chdir()
到主目录。)< / p>
您可以通过cd
解决此问题 - 在启动cd "$PWD"
之前使用tcsh
创建完整路径名,这会为父进程设置正确的工作目录。