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.