Tôi đã gặp lỗi này khi sử dụng jshint thông qua quy trình con python trên 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
Nó được gây ra bởi vì bạn đã xóa hoặc di chuyển một thư mục từ bên dưới nó và thư mục hiện tại không thể được xác định.
Làm thế nào để biết nếu bạn đang gặp vấn đề này:
Chạy lệnh cd .
(Nếu bạn gặp lỗi này thì bạn gặp vấn đề này).
el@apollo:~/foo$ cd .
cd: error retrieving current directory: getcwd: cannot access parent
directories: No such file or director
Bạn đã cố gắng thay đổi thư mục vào thư mục hiện tại của bạn và không thể.
Cách tái tạo lỗi:
jshint bị ảnh hưởng bởi lỗi này. Tạo một thư mục foo
, cd vào nó, tạo một tập tin gọi làmyjavascript.js
cd /home/el
mkdir foo
cd foo
touch myjavascript.js
jshint myjavascript.js
jshint chạy chính xác, nó nói không có lỗi nào là đúng.
Mở một thiết bị đầu cuối thứ 2 và rm -rf
thư mục /home/el/foo
từ bên dưới.
rm -rf /home/el/foo
Chạy jshint myjavascript.js
lại từ thiết bị đầu cuối đầu tiên của bạn và bạn gặp lỗi:
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
Thư mục đã biến mất! Và ngay cả khi bạn thay thế nó bằng cùng một nội dung, nó có chữ ký khác và thiết bị đầu cuối không thể phục hồi, phương thức getcwd
không thể biết thư mục hiện tại là gì.
Ba giải pháp:
Thiết bị đầu cuối bị nhầm lẫn về những gì thư mục hiện tại là vì nó đã biến mất hoặc chữ ký của nó đã thay đổi. Làm một trong những điều này để sửa nó:
Chạy lệnh cd ..
cho đến khi bạn ngừng nhận được lỗi. Điều này tái đồng bộ thiết bị đầu cuối với hệ thống tập tin. Sau đó cd trở lại vào thư mục của bạn. Thử lại. Lỗi biến mất.
Sử dụng su youruser
trong thiết bị đầu cuối, nhập mật khẩu. Nó làm mới và đưa bạn trở lại cùng một thư mục.
Đóng và mở lại thiết bị đầu cuối giúp loại bỏ các chữ ký thư mục cũ. Hoặc gửi một nastymail đến bất kỳ chương trình nào (jshint) hoặc hàng ngàn chương trình khác không thể chịu đựng hoặc phục hồi từ chữ ký thư mục cũ.
cd [PATH]
vào vỏ của bạn để đi đến một cái hiện có.