Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

คำสั่ง pwd ใน Linux: หา Current Working Directory แบบละเอียด

คำสั่งพื้นฐานที่สำคัญที่สุดใน CLI Linux คือ pwd (print working directory) แสดงโฟลเดอร์ที่คุณอยู่ในขณะนั้น

คู่มือนี้สอนการใช้ pwd พร้อมตัวเลือกหา Physical path (ตำแหน่งจริงบนดิสก์) และ Logical path (เส้นทางผ่าน Symbolic Link)

ดูโฟลเดอร์ปัจจุบัน พื้นฐาน

เปิด Terminal รัน:

pwd

ผลลัพธ์ตัวอย่าง:

/home/gary

ใช้ cd ย้ายไปโฟลเดอร์อื่น pwd จะเปลี่ยนตาม เช่น cd documents → /home/gary/documents

pwd แสดงอะไรเมื่อเข้า Symbolic Link?

สถานการณ์: โครงสร้าง

  • home/gary/documents/folder1
  • home/gary/documents/folder2

สร้าง Symlink: ln -s /home/gary/documents/folder1 /home/gary/documents/accounts

ตอนนี้ tree:

  • home/gary/documents/folder1
  • home/gary/documents/folder2
  • home/gary/documents/accounts → folder1

ls -lt จะแสดง accounts -> folder1

อยู่ที่ documents → cd accounts → pwd แสดง /home/gary/documents/accounts (Logical path)

แต่ ls ใน accounts จะแสดงไฟล์ใน folder1

ตัวเลือก -P และ -L: Physical vs Logical

  • pwd -P → แสดง Physical path: /home/gary/documents/folder1
  • pwd -L → แสดง Logical path: /home/gary/documents/accounts (เหมือน pwd ธรรมดา)

Best Practice: ค่า default (physical หรือ logical) ขึ้นกับการ compile pwd ของระบบ → ควรใช้ -P หรือ -L ให้ชัดเจน ตามที่ต้องการ

ใช้ตัวแปร $PWD และ $OLDPWD

  • ดู current directory: echo $PWD
  • ดู previous directory: echo $OLDPWD (โฟลเดอร์ก่อนหน้าที่ cd มา)

หลายเวอร์ชันของ pwd (Shell builtin vs /usr/bin/pwd)

ในบางระบบ (เช่น Kubuntu) พฤติกรรมต่างกัน:

  • Shell builtin pwd → แสดง Logical path ใน symlink
  • /usr/bin/pwd (binary) → แสดง Physical path ใน symlink

รันคำสั่งเดียวกันได้ผลต่างกัน → ย้ำอีกครั้ง: ใช้ -P / -L เพื่อความแน่ชัด

Switches เสริม

  • pwd --version → แสดงเวอร์ชัน (ทำงานกับ /bin/pwd, shell builtin อาจไม่ทำงาน)
  • pwd --help → แสดง manual page (ทำงานกับ /bin/pwd เท่านั้น)