sh: 0: getcwd () falhou: esse arquivo ou diretório não existe na unidade citada


212

Estou tentando compilar código ARM no Ubuntu 12.

Tudo está funcionando bem quando eu coloco o código no diretório local.

Mas quando eu coloco o código no erro de diretório de montagem citado aparece:

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

Aqui está a minha configuração no 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

O que está acontecendo aqui? O que poderia causar esse erro?


Estou tentando no ubuntu 10.10 ele funciona bem com a mesma configuração.
CrazyKitty Rotoshi

49
Essa mensagem de erro pode ser acionada ao tentar executar um comando a partir de um caminho que não existe (por exemplo, se o processo B excluir uma pasta na qual o processo A está localizado atualmente. Um exemplo da vida real: no terminal A: mkdir ~/myfunnydir && cd ~/myfunnydirno terminal B: rm -rf ~/myfunnydire finalmente de volta em um terminal novo: java --version)
dbm

Seu diretório é montado automaticamente, mas as credenciais são armazenadas /root. Um usuário comum não poderá montá-lo porque a credencial não será legível para ele. Tente torná-lo como montagem não automática e deixe a raiz montá-lo.
alvits

Respostas:


564

Esse erro geralmente é causado pela execução de um comando de um diretório que não existe mais.

Tente alterar seu diretório e execute novamente o comando.


4
getcwdobtém o diretório de trabalho atual e se o diretório for excluído ou movido, será infeliz! Consulte o Manual do Linux para getcwd
Hooman

2
Talvez você precise fazer isso se tiver excluído o diretório em que estava e recriado um no mesmo local com o mesmo nome.
Jackson

exatamente verdade! legais!
farhad Goodarzi

1
tudo o que fiz foi clicar em cd e executar novamente o comando, e funcionou, obrigado!
FreeSoftwareServers

Notei isso pessoalmente ao executar o apt-get upgrade a partir de um diretório inexistente. A mensagem é spam cerca de 20 vezes e a atualização continua como se nada tivesse acontecido. Eu esperava encontrar mais informações sobre por que o apt-get se importa com a pasta em que estou, especialmente com tanta insistência e com poucas consequências.
Darren Ringer

11

Tente o seguinte comando, funcionou para mim.

cd; cd -

o que é isso? o que significa?
dılo sürücü 20/03

cd;normalmente o levará ao diretório inicial e o cd -levará de volta ao diretório em que estava antes do diretório atual. Então, basicamente, você vai para o diretório inicial e volta. No entanto, se o diretório original em que você estava foi excluído, isso não funcionará.
Hooman 12/06

7

Isso também aconteceu comigo em um diretório recriado, o diretório é o mesmo, mas para fazê-lo funcionar novamente, basta executar:

cd .

6

Isso pode acontecer com links simbólicos algumas vezes. Se você enfrentar esse problema e souber que está em um diretório existente, mas seu link simbólico pode ter sido alterado, você pode usar este comando:

cd $(pwd)

4

No Ubuntu 16.04.3 LTS, o próximo comando funciona para mim:

exit

Então eu entrei novamente.


2
na verdade, seria o suficiente para mudar para um diretório existente como Hooman já disse em sua resposta
derHugo

2

Por favor, verifique o caminho do diretório, se existe ou não. Este erro aparece se a pasta não existir de onde você está executando o comando. Provavelmente você executou um comando de remoção do mesmo caminho na linha de comando.


1
Isso é o que Hooman já disse em sua resposta
derHugo

0

No meu caso, nada acima funcionou. Depois de bater com a cabeça na parede por um tempo, descobri que destruí as /etc/passwdentradas executando um script custom-linux-server-setup-bash-script que funcionava bem anteriormente, mas desta vez a expressão regular dentro o comando "sed" apagou todas as entradas existentes: D Depois de copiar e colar as entradas padrão de outro servidor linux em funcionamento, finalmente pude reiniciar o sshd.

Portanto, não se esqueça de fazer backup do /etc/passwdarquivo original antes de aplicar quaisquer substituições regex nele :)


-8

Mesmo eu estava tendo o mesmo problema com python virtualenv Foi corrigido por um simples reinício

sudo shutdown -r now

4
na verdade, seria o suficiente para mudar para um diretório existente como Hooman já disse em sua resposta há muito tempo ...
derHugo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.