Estou tentando compilar código ARM no Ubuntu 12.04.
Tudo está funcionando bem quando eu coloco meu código no diretório local. Mas quando eu coloco o código no diretório de montagem citado, esse erro acontece:
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
Aqui está o meu comando mount:
sudo mount -t cifs -o username=wx,passwd=wx,auto,nounix,noserverino,file_mode=0777,dir_mode=0777,uid=user,gid=users,noperm,rw,uid=1002,gid=1002 //192.165.54.18/prj_9330 /home/dongjw/work_dir/work_9330
Estou usando o Ubuntu 12.04 64bit
O que causaria esse erro?
cd [PATH]
seu shell para ir para um existente.Respostas:
Eu recebi esse erro usando o jshint através de um subprocesso python no Ubuntu 12.10 de 64 bits.
Isso é causado porque você excluiu ou moveu um diretório para fora dele e o diretório atual não pode ser determinado.
Como saber se você está tendo esse problema:
Execute o comando
cd .
(se você receber esse erro, terá esse problema).Você tentou alterar o diretório para o diretório atual e não conseguiu.
Como reproduzir o erro:
O jshint é afetado por este erro. Crie um diretório
foo
, faça um cd nele, crie um arquivo chamadomyjavascript.js
O jshint roda corretamente, diz que não há erros, o que está correto.
Abra um segundo terminal e
rm -rf
o diretório/home/el/foo
por baixo.Execute
jshint myjavascript.js
novamente o seu primeiro terminal e você receberá um erro:O diretório se foi! E mesmo que você o substitua pelo mesmo conteúdo, ele possui uma assinatura diferente e o terminal não pode se recuperar, o método
getcwd
não pode saber qual é o diretório atual.Três soluções:
O terminal está confuso sobre qual é o diretório atual porque se foi ou sua assinatura mudou. Siga um destes procedimentos para corrigi-lo:
Execute o comando
cd ..
até parar de receber erros. Isso re-sincroniza o terminal com o sistema de arquivos. Em seguida, volte ao seu diretório. Tente novamente. O erro desaparece.Use
su youruser
no terminal, digite a senha. Ele é atualizado e traz você de volta ao mesmo diretório.Feche e reabra o terminal que limpa as assinaturas de diretório obsoletas. Ou envie um e-mail desagradável para qualquer programa (jshint) ou para milhares de outros programas que não podem tolerar ou se recuperar de assinaturas antigas de diretório.
fonte
cd ..
"com bastante frequência", você também pode apenascd ~
diretamente para o seu homefolderEu recebo o mesmo erro, mas estava tentando executar um script no meu diretório pessoal. Eu o resolvi com:
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
Isso move o meu para o meu diretório pessoal, depois executa o pwd (mas você pode executar o que quiser) e o popd me move de volta para onde eu estava. Se você não precisar voltar,
cd; pwd
Seria o suficiente para resolver meu problema (espero que ajude com o seu).
editar As
1>/dev/null
peças são opcionais; Eu os adiciono para que eu possa usar a linha acima em um script de shell sem saída adicional que não seja necessária neste caso.fonte
Mesmo eu estava tendo o mesmo problema com python virtualenv. Foi corrigido por um simples reinício
fonte
cd
em um diretório existente.