Blog About
Table of Contents
  • เนื้อหา
  • Absolute Path-name
  • Relative path
  • สรุป
  • อ่านเพิ่ม

Absolute and Relative Pathnames

Apisit N.
25 Aug 2023

Absolute path กับ Relative path คืออะไรแล้วต่างกันยังไง?

เนื้อหา

  • เนื้อหา
  • Absolute Path-name
  • Relative path
  • สรุป
  • อ่านเพิ่ม

Absolute Path-name

path แปลตรงๆ ว่า เส้นทาง คือสิ่งที่บอกที่อยู่ของไฟล์หรือโฟลเดอร์นั้นในระบบ ประกอบด้วย อักขระตัวอักษรและตัวเลข แยกหรือคั่นโดยใช้เครื่องหมาย / (Slash)

ก่อนเข้าเนื้อหา ในบทความนี้ออาจจะใช้คำต่างกันแต่อาจมีความหมายเดียวกันเช่น คำว่า โฟลเดอร์ หรือ directory โดย directory เป็นคำที่ใช้เรียกใน UNIX คำว่า เส้นทาง ที่อยู่ ตำแหน่ง หรือ path

ใช้ระบุเส้นทางของไฟล์หรือโฟลเดอร์จาก root directory (/)

การเขียน absolute path-name

  • เริ่มต้นที่ root directory (/) แล้วเข้าไปเรื่อยๆ
  • ใส่ slash (/) ตามหลังชื่อ directory (ไม่ต้องใส่ปิดตอนท้ายก็ได้ เช่น /home กับ /home/ จะมีความหมายเดียวกัน)

ตัวอย่าง

Terminal window
1
cat abc.sql

เรียกใช้คำสั่ง cat เพื่อดูข้อมูลในไฟล์ abc.sql จากตำแหน่งปัจจุบัน(current directory) ถ้าไม่เจอใน directory ปัจจุบันแต่มีอยู่ที่อื่นเช่นอยู่ใน /home/node ต้องใช้คำสั่ง

Terminal window
1
cat /home/node/abc.sql

จากตัวอย่าง กำหนด (/) slash ไว้ตัวแรก หมายถึง เราจะเข้าถึงไฟล์หรือโฟลเดอร์ตั้งแต่ root แล้วเข้าทีละโฟลเดอร์ตามลำดับด้วยเครื่องหมาย /

current directory ปัจจุบันคืออะไรจะรู้ได้ไง? คำตอบคือ ใช้คำสั่ง pwd

Relative path

ใช้ระบุเส้นทางของไฟล์หรือโฟลเดอร์จาก present working directly(pwd) ไม่ได้กำหนด / ไว้ตัวแรก

สมมุติว่าเรามีโฟลเดอร์ชื่อว่า photos เอาไว้เก็บรูป อยู่ภายในโฟลอเดอร์ home

Terminal window
1
/
2
/etc
3
/dev
4
/home
5
/home/folder1
6
/home/folder1/photos/pic-1.jpg
7
/home/folder1/photos/pic-2.jpg
8
/home/folder2
9
/home/folder3/work/lab1.js
10
/home/folder3/work/lab2.js
11
/home/folder3/work/lab3.js
12
/usr
13
/var

UNIX มี shortcut หรือคำสั่งสั้นๆ สำหรับเข้าถึง relative pathname ให้เราใช้เข้าถึง current or parent directory โดยใช้เครื่องหมายจุด

. (จุดตัวเดียว) หมายถึง current directory หรือปัจจุบัน

.. (จุด 2 ตัว) หมายถึง parent directory หรือ จะใช้บ่อยตอนเปลี่ยน directory ถอย 1 ระดับ

ลองมาใข้คำสั่งแล้วดูผลลัพธ์กันเลย

สมมุติว่าตอนนี้อยู่ที่ /home/folder/photos แล้วอยากจะเปลี่ยนโฟลเดอร์ จะต้องใช้คำสั่ง change directory (cd)

Terminal window
1
$pwd
2
/home/folder/photos
3
$ cd .. ***ถอย 1 ระดับ***
4
$pwd
5
/home/folder
6
$ cd ../.. ***ถอย 2 ระดับ***
7
$ pwd
8
/

ลองใช้ทั้ง relative และ absolute path สมมุติว่าตอนนี้อยู่ที่ /home/folder แล้วเราจะเปลี่ยนไปที่ /home/folder/photos

  1. relative
    Terminal window
    1
    $pwd
    2
    /home/folder
    3
    $cd photos
    4
    $pwd
    5
    /home/folder/photos
  2. absolute
    Terminal window
    1
    $pwd
    2
    /home/folder
    3
    $cd /home/folder/photos
    4
    $pwd
    5
    /home/folder/photos

สรุป

absolute เริ่มที่ root (/home/folder)

relative เริ่มที่ current directory (./folder)

อ่านเพิ่ม

  • https://www.geeksforgeeks.org/absolute-relative-pathnames-unix/
© 2025 Apisit N.