Ubuntu 12.04에서 ARM 코드를 컴파일하려고합니다.
코드를 로컬 디렉토리에 넣으면 모든 것이 잘 작동합니다. 그러나 인용 마운트 디렉토리에 코드를 넣으면이 오류가 발생합니다.
sh: 0: getcwd() failed: No such file or directory
sh: 0: getcwd() failed: No such file or directory
내 마운트 명령은 다음과 같습니다.
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
우분투 12.04 64 비트를 사용하고 있습니다
이 오류의 원인은 무엇입니까?
답변
우분투 12.10 64 비트에서 파이썬 서브 프로세스를 통해 jshint를 사용 하여이 오류가 발생했습니다.
node.js:464
var cwd = process.cwd();
^
Error: ENOENT, no such file or directory
at Function.resolveArgv0 (node.js:464:23)
at startup (node.js:51:13)
at node.js:555:3
디렉토리를 삭제하거나 그 아래에서 디렉토리를 이동했으며 현재 디렉토리를 판별 할 수 없기 때문에 발생합니다.
이 문제가 있는지 확인하는 방법 :
명령을 실행하십시오 cd .
(이 오류가 발생하면이 문제점이있는 것입니다).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
디렉토리를 현재 디렉토리로 변경하려고 시도했지만 실패했습니다.
오류를 재현하는 방법 :
jshint는이 오류의 영향을받습니다. 디렉토리를 만들고 foo
, CD를 넣고,myjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint가 올바르게 실행되면 오류가 없다고 말합니다.
두 번째 터미널을 열고 rm -rf
디렉토리 /home/el/foo
를 아래에서 엽니 다 .
rm -rf /home/el/foo
jshint myjavascript.js
첫 번째 터미널에서 다시 실행하면 오류가 발생합니다.
el@apollo:~/foo$ jshint myjavascript.js
node.js:464
var cwd = process.cwd();
^
Error: ENOENT, no such file or directory
at Function.resolveArgv0 (node.js:464:23)
at startup (node.js:51:13)
at node.js:555:3
디렉토리가 사라졌습니다! 그리고 동일한 내용으로 바꾸더라도 서명이 다르고 터미널을 복구 getcwd
할 수 없으므로 메소드 는 현재 디렉토리가 무엇인지 알 수 없습니다.
세 가지 솔루션 :
터미널은 현재 디렉토리가 사라 졌거나 서명이 변경되어 현재 디렉토리가 무엇인지 혼동합니다. 다음 중 하나를 수행하여 수정하십시오.
-
cd ..
오류가 발생하지 않을 때까지 명령을 실행하십시오 . 이것은 터미널을 파일 시스템과 다시 동기화합니다. 그런 다음 디렉토리로 다시 cd하십시오. 다시 시도하십시오. 오류가 사라집니다. -
사용
su youruser
단말기에서이 암호를 입력합니다. 새로 고침되어 같은 디렉토리로 돌아갑니다. -
오래된 디렉토리 서명을 플러시하는 터미널을 닫았다가 다시 엽니 다. 또는 오래된 디렉토리 서명을 허용하거나 복구 할 수없는 모든 프로그램 (jshint) 또는 수천 개의 다른 프로그램에 nastymail을 보내십시오.
답변
같은 오류가 발생하지만 홈 디렉토리에서 스크립트를 실행하려고했습니다. 나는 그것을 해결했다 :
pushd ~ 1>/dev/null; pwd ; popd 1>/dev/null
이것은 내 홈 디렉토리로 이동 한 다음 pwd를 실행하지만 원하는대로 실행할 수 있습니다. 팝은 나를 원래 위치로 다시 이동시킵니다. 뒤로 이동할 필요가 없다면
cd; pwd
내 문제를 해결하기에 충분할 것입니다 (문제가 도움이되기를 바랍니다).
편집
의 1>/dev/null
부분은 선택 사항입니다 필자는이 경우 필요하지 않은 추가 출력없이 쉘 스크립트 내에서 위의 행을 사용할 수 있도록 추가합니다.
답변
심지어 python virtualenv와 동일한 문제가있었습니다. 간단한 재시작으로 수정되었습니다.
sudo shutdown -r now