ทำไมไอคอนโฟลเดอร์ในเทอร์มินัลของฉันมีเครื่องหมายคำถามซ้อนอยู่?


16

ในบางครั้งฉันเห็นว่าไอคอนโฟลเดอร์ในแถบชื่อเรื่องของหน้าต่างเทอร์มินอลของฉันมีเครื่องหมายคำถามซ้อนทับเช่นหนึ่ง:

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งนี้หมายความว่า? ดูเหมือนว่าจะไม่มีผลกระทบหรือปัญหาที่ฉันสังเกตเห็น - ฉันแค่อยากรู้

ฉันใช้ OS X 10.8 (Mountain Lion)

คำตอบ:


18

เครื่องหมายคำถาม (และรายการเมนูป๊อปอัปที่ปิดใช้งาน) บ่งชี้ว่า Terminal คิดว่าไดเรกทอรีการทำงานอยู่ในคอมพิวเตอร์ระยะไกลดังนั้นคุณจึงไม่สามารถนำทางไปยัง Finder ใน Finder ได้โดยใช้เมนูป๊อปอัป หากคุณดูรายการสุดท้ายในเมนูป๊อปอัพ (คำสั่งคลิกที่ไอคอน "พร็อกซี") คุณจะเห็นคอมพิวเตอร์ / โฮสต์ที่เทอร์มินัลคิดว่าไดเรกทอรีการทำงานเปิดอยู่ คุณควรพบว่าไม่ใช่ชื่อปัจจุบันของคอมพิวเตอร์

หากคุณกำลังใช้ bash (เชลล์เริ่มต้นบน macOS) โดยค่าเริ่มต้นมันจะส่งลำดับการควบคุมไปยังเทอร์มินัลที่แต่ละพรอมต์เพื่อบอก Terminal ถึงไดเรกทอรีการทำงานปัจจุบัน เนื่องจากลำดับการควบคุมอาจมาจากเครื่องโลคัลหรือคอมพิวเตอร์ระยะไกลจึงส่งแบบแผน“ ไฟล์:” URL รวมถึงชื่อโฮสต์และเทอร์มินัลจะตรวจสอบว่าชื่อแมปไปยังเครื่องปัจจุบัน หากไม่เป็นเช่นนั้นเทอร์มินัลจะปิดใช้งานรายการเมนูป๊อปอัพพา ธ เนื่องจากไม่สอดคล้องกับไดเรกทอรีในเครื่อง

คุณสามารถดูรหัสที่ส่งลำดับการควบคุมใน/etc/bashrc_Apple_Terminal(หรือ/etc/bashrcใน macOS รุ่นเก่ากว่า)

[โปรดทราบว่าหากคุณไม่ได้ใช้ bash หรือคุณได้ปรับแต่งเพื่อให้พฤติกรรมเริ่มต้นไม่เกิดขึ้น แต่เชลล์ของคุณ (หรือโปรแกรมอื่น ๆ ที่คุณใช้งานอยู่) กำลังส่งลำดับการควบคุมเพื่อตั้งค่าหน้าต่างหรือแท็บ ( ไอคอน) ชื่อเทอร์มินัลจะตรวจสอบเพื่อดูว่ามีชื่อพา ธ หรือไม่จากนั้นจะตรวจสอบว่าสอดคล้องกับชื่อพา ธ ในพื้นที่ที่ถูกต้องหรือไม่ มิฉะนั้นจะไม่แสดงไอคอนพร็อกซีหน้าต่างเลย]

สถานการณ์ที่เทอร์มินัลไม่สามารถจำได้ว่า "ไฟล์:" URL อยู่ในโฮสต์ปัจจุบันคือถ้าคุณเปลี่ยนการกำหนดค่าเครือข่ายของคุณในขณะที่เชลล์กำลังทำงาน กรณีทั่วไปคือการทำให้คอมพิวเตอร์แบบพกพาเข้าสู่โหมดสลีปและย้ายไปยังตำแหน่งอื่นจากนั้นจึงปลุก ชื่อโฮสต์และที่อยู่ในพื้นที่จะมีการเปลี่ยนแปลง แต่$HOSTNAMEตัวแปรสภาพแวดล้อมของเชลล์ยังคงมีชื่อโฮสต์เก่าและนั่นคือสิ่งที่มันส่งในลำดับการควบคุม ในการแก้ไขปัญหานี้ให้อัพเดตตัวแปรสภาพแวดล้อมด้วย:

 HOSTNAME=$(hostname)

สถานการณ์อื่นคือที่ที่คุณออกจากเทอร์มินัลเปลี่ยนการกำหนดค่าเครือข่ายจากนั้นเปิดเทอร์มินัลพร้อมเปิดใช้งาน Resume เทอร์มินัลจะคืนค่าหน้าต่างและแท็บพร้อมกับ URL ไดเรกทอรีการทำงานล่าสุดที่ถูกส่งไป หากคุณพบกรณีนี้$HOSTNAMEจะเป็นรุ่นล่าสุด - ตั้งแต่เริ่มเชลล์ใหม่ แต่เทอร์มินัลยังคงสามารถมี URL ค้างจนกว่าคุณจะได้รับเชลล์เพื่ออัปเดตอีกครั้ง หากการแสดงพรอมต์คำสั่งไม่สามารถแก้ปัญหาได้ให้ลองเปลี่ยนไดเรกทอรีด้วยcdเพื่อให้เชลล์ทำการอัปเดต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.