Ich habe diesen Fehler mit jshint über einen Python-Unterprozess unter Ubuntu 12.10 64-Bit erhalten.
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
Dies liegt daran, dass Sie ein Verzeichnis darunter gelöscht oder verschoben haben und das aktuelle Verzeichnis nicht ermittelt werden kann.
So erkennen Sie, ob Sie dieses Problem haben:
Führen Sie den Befehl aus cd .
(Wenn Sie diesen Fehler erhalten, haben Sie dieses Problem).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Sie haben versucht, das Verzeichnis in Ihr aktuelles Verzeichnis zu ändern, konnten dies jedoch nicht.
So reproduzieren Sie den Fehler:
jshint ist von diesem Fehler betroffen. Machen Sie ein Verzeichnis foo
, CD in es, machen Sie eine Datei namensmyjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint läuft korrekt, es heißt, es gibt keine Fehler, die korrekt sind.
Öffnen Sie ein zweites Terminal und rm -rf
das Verzeichnis /home/el/foo
von unten.
rm -rf /home/el/foo
Führen Sie das jshint myjavascript.js
erneut von Ihrem ersten Terminal aus und Sie erhalten eine Fehlermeldung:
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
Das Verzeichnis ist weg! Und selbst wenn Sie es durch denselben Inhalt ersetzen, hat es eine andere Signatur und das Terminal kann nicht wiederhergestellt werden. Die Methode getcwd
kann das aktuelle Verzeichnis nicht kennen.
Drei Lösungen:
Das Terminal ist verwirrt darüber, was das aktuelle Verzeichnis ist, weil es weg ist oder sich seine Signatur geändert hat. Führen Sie einen der folgenden Schritte aus, um das Problem zu beheben:
Führen Sie den Befehl aus, cd ..
bis keine Fehler mehr angezeigt werden. Dadurch wird das Terminal erneut mit dem Dateisystem synchronisiert. Dann CD zurück in Ihr Verzeichnis. Versuch es noch einmal. Der Fehler verschwindet.
Geben Sie su youruser
im Terminal das Passwort ein. Es wird aktualisiert und bringt Sie zurück in dasselbe Verzeichnis.
Schließen Sie das Terminal und öffnen Sie es erneut, wodurch die veralteten Verzeichnissignaturen entfernt werden. Oder senden Sie eine Nastymail an ein beliebiges Programm (jshint) oder an Tausende anderer Programme, die veraltete Verzeichnissignaturen nicht tolerieren oder wiederherstellen können.
cd [PATH]
Ihre Shell ein, um zu einer vorhandenen zu wechseln.