sh : 0 : getcwd () 실패 : 인용 된 드라이브에 해당 파일 또는 디렉토리가 없습니다.


211

우분투 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

무슨 일이야? 이 오류의 원인은 무엇입니까?


우분투 10.10에서 동일한 구성으로 잘 작동합니다.
— CrazyKitty Rotoshi

49
이 오류 메시지는 존재하지 않는 경로에서 명령을 실행하려고 할 때 트리거 될 수 있습니다 (예 : 프로세스 B가 프로세스 A가 현재 위치한 폴더를 삭제하는 경우). 실제 예 : 터미널 A : mkdir ~/myfunnydir && cd ~/myfunnydir터미널 B : rm -rf ~/myfunnydir마지막으로 터미널 A로 다시 돌아갑니다. java --version)
— dbm

디렉토리는 자동 마운트되지만 신임 정보는에 저장됩니다 /root. 신임 정보를 읽을 수 없으므로 일반 사용자는이를 마운트 할 수 없습니다. 비 자동 마운트로 만들어 루트 마운트하도록하십시오.
— alvits

답변:


564

이 오류는 일반적으로 더 이상 존재하지 않는 디렉토리에서 명령을 실행하면 발생합니다.

디렉토리를 변경하고 명령을 다시 실행하십시오.


4
getcwd현재 작업 디렉토리를 가져오고 디렉토리를 삭제하거나 이동하면 불행합니다!
— Hooman

2
자신이 있던 디렉토리를 삭제하고 같은 이름으로 같은 위치에 디렉토리를 다시 만든 경우에도이 작업을 수행해야 할 수도 있습니다.
— 잭슨

정확히 사실입니다! 좋은!
— farhad goodarzi

1
내가 한 것은 cd를 치고 명령을 다시 실행하는 것입니다. 감사했습니다!
— FreeSoftwareServers

존재하지 않는 디렉토리에서 apt-get 업그레이드를 실행할 때이 사실을 알았습니다. 이 메시지는 약 20 회 스팸으로 처리되며 아무 일도 일어나지 않은 것처럼 업데이트가 계속됩니다. apt-get이 왜 내가 어떤 폴더에 있는지, 특히 그렇게 작은 결과로 너무 고집스럽게 신경 쓰는 이유에 대한 자세한 정보를 찾고 싶었습니다.
— 대런 링거

11

다음 명령을 시도해보십시오.

cd; cd -

이것은 무엇입니까? 와트는 무슨 뜻입니까?
— dılo sürücü

cd;일반적으로 홈 디렉토리 cd -로 이동하여 현재 디렉토리 직전에 있던 디렉토리로 돌아갑니다. 기본적으로 홈 디렉토리로 이동하여 다시 돌아옵니다. 그러나 원래 있던 디렉토리가 삭제되면 작동하지 않습니다.
— 후만

7

그것은 또한 재 생성 된 디렉토리에서 나에게 일어났습니다. 디렉토리는 동일하지만 다시 작동하게하려면 그냥 실행하십시오.

cd .

6

이것은 때때로 심볼릭 링크에서 발생할 수 있습니다. 이 문제가 발생하고 기존 디렉토리에 있지만 심볼릭 링크가 변경된 것을 알고 있으면 다음 명령을 사용할 수 있습니다.

cd $(pwd)

4

Ubuntu 16.04.3 LTS에서 다음 명령이 저에게 효과적입니다.

exit

그런 다음 다시 로그인했습니다.


2
Hooman 이미 자신에 말했듯이 실제로는 기존 디렉토리로 전환하기에 충분 될 대답
— derHugo

2

디렉토리 경로가 존재하는지 여부를 확인하십시오. 이 오류는 명령을 실행하는 위치에 폴더가 없으면 발생합니다. 명령 행의 동일한 경로에서 제거 명령을 실행했을 수 있습니다.


1
그 Hooman가 이미 말한 그의 대답
— derHugo

0

내 경우에는 위의 아무것도 작동하지 않습니다. 내가 알아 낸 한동안 벽에 머리를 대고 난 후에, /etc/passwd이전에는 잘 작동했던 custom-linux-server-setup-bash-script를 실행 하여 항목을 파괴 했지만 이번에는 정규 표현식 "sed"명령은 기존의 모든 항목을 지 웠습니다. D 다른 Linux 서버에서 기본 항목을 복사 한 후 sshd를 다시 시작할 수있었습니다.

따라서 /etc/passwd정규식 대체를 적용하기 전에 원본 파일 을 백업하는 것을 잊지 마십시오. :)


-8

심지어 파이썬 virtualenv와 동일한 문제가 발생했습니다. 간단한 재시작으로 수정되었습니다.

sudo shutdown -r now

4
실제로 Hooman이 이미 오래 전에 그의 답변 에서 말했듯이 기존 디렉토리로 전환하는 것으로 충분할 것입니다 ...
— derHugo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.