Wystąpił ten błąd przy użyciu jshint poprzez podprocesję python na Ubuntu 12.10 64 bit.
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
Jest to spowodowane tym, że katalog został usunięty lub przeniesiony spod niego i nie można ustalić bieżącego katalogu.
Jak stwierdzić, czy masz ten problem:
Uruchom polecenie cd .
(jeśli pojawi się ten błąd, masz ten problem).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Próbowałeś zmienić katalog na bieżący katalog, ale nie mogłeś.
Jak odtworzyć błąd:
Ten błąd dotyczy jshint. Utwórz katalog foo
, włóż do niego cd, utwórz plik o nazwiemyjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint działa poprawnie, mówi, że nie ma błędów, które są poprawne.
Otwórz drugi terminal i wyjmij rm -rf
katalog /home/el/foo
spod spodu.
rm -rf /home/el/foo
Uruchom jshint myjavascript.js
ponownie z pierwszego terminala, a pojawi się błąd:
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
Katalog zniknął! I nawet jeśli miałbyś zastąpić go tą samą zawartością, ma on inną sygnaturę i terminal nie może odzyskać, metoda getcwd
nie może wiedzieć, jaki jest bieżący katalog.
Trzy rozwiązania:
Terminal jest zdezorientowany co do bieżącego katalogu, ponieważ jego nie ma lub jego podpis się zmienił. Wykonaj jedną z nich, aby to naprawić:
Uruchom polecenie, cd ..
aż przestaną pojawiać się błędy. Spowoduje to ponowną synchronizację terminala z systemem plików. Następnie wróć do katalogu. Spróbuj ponownie. Błąd znika.
Użyj su youruser
w terminalu, wprowadź hasło. Odświeża i wraca do tego samego katalogu.
Zamknij i ponownie otwórz terminal, który usuwa nieaktualne sygnatury katalogów. Lub wyślij wiadomość pocztową do dowolnego programu (jshint) lub tysięcy innych programów, które nie mogą tolerować lub odzyskać po starych podpisach katalogów.
cd [PATH]
swoją powłokę, aby przejść do istniejącej.