Ubuntu 12.10 64ビットのpythonサブプロセスで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は正しく実行され、正しいエラーはないと表示されます。
2番目のターミナルを開き、下から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
は現在のディレクトリが何であるかを知ることができません。
3つのソリューション:
端末は、現在のディレクトリが存在しないか、署名が変更されたために、現在のディレクトリが何であるかについて混乱しています。次のいずれかを実行して修正します。
cd ..
エラーが表示されなくなるまでコマンドを実行します。これにより、ターミナルがファイルシステムと再同期されます。次に、ディレクトリに戻ってcdします。再試行。エラーはなくなります。
su youruser
ターミナルで使用し、パスワードを入力します。更新され、同じディレクトリに戻ります。
ターミナルを閉じて再度開き、古いディレクトリ署名をフラッシュします。または、すべてのプログラム(jshint)または古いディレクトリシグネチャを許容または回復できない他の何千ものプログラムに厄介なメールを送信します。
cd [PATH]
シェルを入力して、既存のシェルに移動します。