我正在尝试在Ubuntu 12.04 (Precise穿山甲)上编译ARM代码。

当我将代码放入本地目录时,一切都正常工作。

但是当我把代码放在引用的挂载目录中时,出现了一个错误:

making testXmlFiles
sh: 0: getcwd() failed: No such file or directory
ARM Compiling xxxxx.c
sh: 0: getcwd() failed: No such file or directory

下面是我在fstab中的设置:

//10.0.0.1/data /mnt/data   cifs    auto,noserverino,credentials=/root/.smbcredentials,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm 0 0

这是怎么回事?是什么导致了这个错误?


此错误通常是由于从一个不再存在的目录运行命令引起的。

尝试更改目录并重新运行该命令。


请检查目录路径是否存在。如果运行命令所在的文件夹不存在,则会出现此错误。

您可能已经在命令行上的同一路径上执行了删除命令。


试试下面的命令。这对我很管用。

cd; cd -

在Ubuntu 16.04.3 LTS (Xenial Xerus)中,以下命令适用于我:

exit

然后我再次登录。


符号链接有时也会发生这种情况。如果你遇到这个问题,你知道你在一个现有的目录中,但是你的符号链接可能已经改变了,你可以使用这个命令:

cd $(pwd)

我在重新创建的目录上也遇到了这种情况。目录是相同的,但要使它再次工作,只需运行:

cd .

就我而言,之前的答案都不起作用。

在我的头撞到墙上一段时间后,我发现,我已经通过运行一个定制的linux-server-setup-bash-脚本销毁了/etc/passwd条目,这个脚本以前工作得很好,但这次“sed”命令中的regex删除了所有现有的条目:D

从另一个正在工作的Linux服务器复制粘贴默认条目后,我终于可以重新启动sshd了。

所以在应用任何正则表达式替换之前,不要忘记备份原始的/etc/passwd文件:)


如果某个目录/文件夹不存在,但您以某种方式导航到该目录,在这种情况下,您将看到此错误。

例如:

当前,您在“mno”目录(path = abc/def/ghi/jkl/mno . exe) 执行“sudo su”命令,删除mno 进入“ghi”目录,删除“jkl”目录 现在你在“ghi”目录(路径abc/def/ghi) “退出” 运行“exit”后,您将得到该错误 现在你将在“mno”(path = abc/def/ghi/jkl/mno)文件夹中。这是不存在的。

因此,通常这个错误会在目录不存在时显示。

要解决这个问题,只需运行“cd;”,或者您可以移动到任何其他存在的目录。