pwdคำสั่งเป็นทั้งเปลือก builtin และ / bin / รหัสผ่าน ภายใต้สถานการณ์ปกติ builtin จะถูกเรียกใช้ในการตั้งค่า / bin / pwd คำสั่ง pwd สามารถถูกเรียกใช้เป็นpwd -L
หรือpwd -P
ทั้งสองเป็นค่าเริ่มต้น builtin และ / bin / pwd pwd -L
จากหน้า man
-L, - ใช้ PWD เชิงตรรกะจากสภาพแวดล้อมแม้ว่าจะมี symlinks
ดังนั้นเมื่อคุณเรียกใช้ pwd คุณจะเรียกใช้ pwd -L ซึ่งมีผลต่อการพิมพ์ $ PWD (ถ้ามี) เมื่อคุณเรียกใช้sudo pwd
sudo จะจัดเตรียมตัวแปรสภาพแวดล้อมที่ได้รับคำสั่งให้ส่งผ่านenv_keep
คำสั่งเท่านั้น PWD ไม่ปกติในรายการนี้ดังนั้น sudo pwd ต้องหาว่ามันอยู่ที่ไหนและมีผลอย่างไรpwd -P
-P, - หลีกเลี่ยงการเชื่อมโยงทางกายภาพทั้งหมด
วิธีการแก้ปัญหาคือการใช้pwd -P
หากคุณต้องการเส้นทางไดเรกทอรีทางกายภาพหรือ (ตามที่ @Felix พูดว่า) เพื่อเพิ่ม PWD ลงในรายการตัวแปรสภาพแวดล้อมเพื่อให้ผ่านคำสั่ง env_keep ใน sudoers
env_keep += "PWD"