sh:0:getcwd()失败:引用的驱动器上没有这样的文件或目录


211

我正在尝试在Ubuntu 12中编译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

这里发生了什么?是什么导致此错误?


我在ubuntu 10.10中尝试使用相同的配置即可正常工作。
CrazyKitty Rotoshi

49
尝试从不存在的路径执行命令时,可能会触发此错误消息(例如,如果进程B删除了进程A当前所在的文件夹。一个真实的示例:在终端A中:mkdir ~/myfunnydir && cd ~/myfunnydir在终端B中:rm -rf ~/myfunnydir最后回到在终端A再次:java --version
DBM

您的目录已自动挂载,但凭据存储在中/root。普通用户将无法安装它,因为他们将无法读取该凭证。尝试将其设置为非自动挂载,然后以root身份挂载它。
alvits 2014年

Answers:


564

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

尝试更改目录,然后重新运行命令。


4
getcwd获取当前的工作目录,如果目录被删除或移动,将不满意​​!请参阅Linux手册以获取getcwd
Hooman'1

2
如果您删除了所在目录并在同一位置以相同名称重新创建了一个目录,则可能甚至需要执行此操作。
杰克逊

完全正确!真好!
farhad goodarzi

1
我所做的只是打了cd,然后重新运行命令,它成功了,谢谢!
FreeSoftwareServers 2016年

从不存在的目录运行apt-get升级时,我自己注意到了这一点。该消息将发送大约20次垃圾邮件,然后更新就好像没有任何反应一样继续进行。我希望找到更多有关为什么apt-get甚至在乎我所在文件夹的信息,尤其是坚持这样做而带来的后果很少。
Darren Ringer

11

尝试以下命令,它对我有用。

cd; cd -

这是什么意思?
DILOsürücü

cd;通常会带您回到主目录,并cd -带您回到当前目录之前的目录。因此,基本上,您转到主目录并返回。但是,如果您所在的原始目录被删除,则该目录将不起作用。
Hooman


6

有时可能会通过符号链接发生这种情况。如果遇到此问题,并且知道您在现有目录中,但是符号链接可能已更改,则可以使用以下命令:

cd $(pwd)

4

在Ubuntu 16.04.3 LTS中,下一条命令对我有用:

exit

然后,我再次登录。


2
实际上,就像Hooman在回答中
derHugo

2

请检查目录路径是否存在。如果在运行命令的位置不存在该文件夹,则会出现此错误。可能是您从命令行中的同一路径执行了一条remove命令。


1
这就是
霍曼

0

就我而言,以上没有任何作用。我发现我的头撞墙了一段时间后,发现/etc/passwd通过运行一个自定义的linux-server-setup-bash-script脚本破坏了这些条目,该脚本以前运行良好,但是这次是regex “ sed”命令删除了所有现有条目:D从另一个工作的linux服务器复制粘贴默认条目后,我终于可以重新启动sshd。

因此,在对/etc/passwd文件进行任何正则表达式替换之前,请不要忘记备份原始文件:)


-8

即使我在使用python virtualenv时也遇到同样的问题,只需重新启动即可解决

sudo shutdown -r now

4
实际上,只需切换到现有目录就足够了,正如Hooman 很久以前在其回答中所说的那样……
derHugo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.