ฉันได้รับข้อผิดพลาดนี้โดยใช้ jshint ผ่านโพรเซสไพร์หลามบน Ubuntu 12.10 64 บิต
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
คุณพยายามเปลี่ยนไดเรกทอรีเป็น dir ปัจจุบันของคุณและไม่สามารถทำได้
วิธีสร้างข้อผิดพลาดซ้ำ:
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
ไม่สามารถรู้ว่าไดเรกทอรีปัจจุบันคืออะไร
สามโซลูชั่น:
เทอร์มินัลสับสนเกี่ยวกับสิ่งที่ไดเรกทอรีปัจจุบันเป็นเพราะมันหายไปหรือมีการเปลี่ยนแปลงลายเซ็น เลือกทำอย่างใดอย่างหนึ่งต่อไปนี้เพื่อแก้ไข:
รันคำสั่งcd ..
จนกว่าคุณจะหยุดรับข้อผิดพลาด สิ่งนี้ซิงโครไนซ์เทอร์มินัลกับระบบไฟล์อีกครั้ง จากนั้น cd กลับไปยังไดเรกทอรีของคุณ ลองอีกครั้ง. ข้อผิดพลาดหายไป
ใช้su youruser
ใน terminal ป้อนรหัสผ่าน รีเฟรชและนำคุณกลับไปยังไดเรกทอรีเดียวกัน
ปิดและเปิดเทอร์มินัลอีกครั้งซึ่งจะล้างข้อมูลลายเซ็นต์ไดเรกทอรีเก่าออกไป หรือส่ง nastymail ไปยังโปรแกรมใด ๆ (jshint) หรือโปรแกรมอื่น ๆ อีกหลายพันโปรแกรมที่ไม่สามารถทนหรือกู้คืนจากลายเซ็นไดเรกทอรีเก่า
cd [PATH]
เชลล์ของคุณเพื่อไปยังเชลล์ที่มีอยู่