pwd ใน bash ไม่ถูกต้องหลังจากส่งไดเรกทอรีไปที่ถังขยะ


0

ถ้าฉันย้ายไดเรกทอรีไปที่ถังขยะที่ฉันมีอยู่แล้วในไดเรกทอรีนั้นpwdจะไม่รายงานการเปลี่ยนแปลงในตำแหน่ง ฉันจะยังคงสามารถทำทุกอย่างด้วยวิธีทุบตีได้ตามปกติราวกับว่าไม่มีการเปลี่ยนแปลงในไดเรกทอรีแม้ว่า Finder จะบอกว่าไม่มีอยู่

pwd ควรถูกต้องเสมอ ดูเหมือนว่าจะไม่เป็นเช่นนั้น

ตัวอย่างเช่นฉันจะไปที่เส้นทางนี้: /Users/me/Desktop/goingToTrash/subdir

ถ้าฉันย้ายไปที่ถังขยะ/Users/me/Desktop/goingToTrashpwd จะรายงานว่าฉันอยู่/Users/me/Desktop/goingToTrash/subdirแม้ว่าเครื่องมือค้นหาจะบอกว่าไม่มีอยู่ก็ตาม ดังนั้นถ้าฉันสร้างไดเรกทอรีที่ถูกลบใหม่ bash จะทำงานได้จากไดเรกทอรีเก่า (ฉันสมมติว่าในถังขยะยังไม่ได้ยืนยัน) แทนที่จะเป็นไดเรกทอรีใหม่ที่ฉันเพิ่งสร้างขึ้นและ pwd จะไม่ให้สิ่งนี้เกิดขึ้นเลย

ถ้าฉัน "ย้ายไปที่ถังขยะ" ไดเรกทอรีและฉัน cd หนึ่งไปยังไดเรกทอรีย่อยของมันแล้วสร้างโครงสร้างไดเรกทอรีจากไดเรกทอรีย่อยที่ฉันสามารถcd ../subdirฉันฉันกลับเข้าสู่ไดเรกทอรี "ใหม่" อย่างน่าอัศจรรย์ แม้ว่าพาเรนต์จะถูก "ย้ายไปที่ถังขยะ" แทนที่จะเหลืออยู่ในโครงสร้างไดเรกทอรีที่ถูกย้ายไปที่ถังขยะ


คุณได้ลองโหลด bash env อีกครั้งหรือไม่? . ~ / .bash_profile
CJ Dana

@CJDana คำตอบด้านล่างดูเหมือนจะใช้ได้ ฉันไม่ต้องการที่จะกังวลเกี่ยวกับสถานะของ bash สำหรับคำสั่งใด ๆ (หรือในกรณีนี้ทุกคน) มันควรจะเป็น "ทันสมัย" เสมอ
Zamicol

คำตอบ:


3

YMMV เมื่อมีการไม่ทำงานระหว่างเชลล์และ Finder.app ที่ดีที่สุดคือใช้ -

/bin/pwd

แทนที่จะสร้างpwdขึ้น

คุณสามารถเพิ่มบรรทัดนี้ใน ~ / .bashrc ของคุณและรีเซ็ต bash เป็น "แก้ไข" ปัญหานี้

alias pwd="/bin/pwd"

ทางเลือกในการ/bin/pwd(มีหรือไม่มีนามแฝง) pwd -Pเป็น -Pตัวเลือกในการ builtin มีการอธิบายในการส่งออกของpwdhelp pwd


2
ไดเรกทอรีการทำงานปัจจุบันจะเปลี่ยนเฉพาะเมื่อทำผ่านเปลือกเท่านั้น ". ไม่ถูกต้อง: คุณสามารถย้ายโฟลเดอร์ไปที่ถังขยะในเชลล์และ pwd ในตัวจะไม่อัปเดต (เช่นmv ../../test ~/.Trash/และไดเรกทอรีการทำงานปัจจุบันของคุณคือ / ผู้ใช้ / ผู้ใช้ / ผู้ใช้ / ทดสอบ / subdir /)
klanomath

1
@Klanomath Correct- จะแก้ไขโพสต์
fd0

3

ลักษณะการทำงานนี้ไม่มีอะไรเกี่ยวข้องกับไดเรกทอรี. ถังขยะ คุณสามารถเข้าสู่สถานการณ์ที่คล้ายกันได้โดยย้ายไดเรกทอรีการทำงานปัจจุบันไปยังตำแหน่งอื่น pwdคำสั่งและecho $PWDทั้งสองจะไม่ถูกต้อง

สิ่งที่ฉันได้พบคือการเริ่มต้นกระบวนการทุบตีใหม่จะระบุตำแหน่งใหม่ของไดเรกทอรีการทำงานปัจจุบันของคุณได้อย่างถูกต้อง ดังนั้นวิธีแก้ปัญหาจะเป็นเพียงแค่ "รีเฟรช" exec bashกระบวนการทุบตีปัจจุบันของคุณกับใหม่ด้วยคำสั่ง


มีวิธีที่จะทำให้ terminal พร้อมท์ให้ถูกต้องหรือไม่? ตัวอย่างเช่นฉันใช้export PS1='\u@\H:\w$'เพื่อตั้งค่าการแจ้งเตือนของฉัน \wสำหรับไดเรกทอรีการทำงานปัจจุบันซึ่งยังไม่ถูกต้อง
Zamicol

2
cd .ดูเหมือนว่าจะบังคับให้รีเฟรชเช่นกันโดยไม่มีปัญหาที่อาจเกิดขึ้นกับการเปลี่ยนเชลล์ได้
Gordon Davisson

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