iT邦幫忙

2026 iThome 鐵人賽

DAY 0
0
Security

從 Linux 到 Pwn:30 天學習資安攻防系列 第 7

Day 6|認識 .:Current Directory 與 Explicit Relative Path

  • 分享至 

  • xImage
  •  

前言
前一天學習了 Relative Path(相對路徑)的概念。
當時我們使用 challenge/run 來執行程式。
這種寫法會根據目前工作目錄(Current Working Directory)來尋找目標檔案。

而今天的 Challenge 則進一步介紹 Linux 路徑中的特殊符號 .,雖然只有一個點,但它在 Linux 中有非常重要的意義,也是之後撰寫 Shell Script、執行程式以及進行系統操作時經常會看到的符號。


一、什麼是 .

在 Linux 中 . 代表**Current Directory(目前目錄)**也就是目前工作目錄本身。
例如假設目前位於 / 那麼 . 實際上就代表 /


二、為什麼需要 .

前一天我們使用 challenge/run 執行程式。
其實也可以寫成 ./challenge/run,兩者的意思完全相同。
因為 . = 目前所在目錄
因此 ./challenge/run
可以理解成 目前目錄/challenge/run
如果目前位於 /
那麼 ./challenge/run
實際上等同於 / + challenge/run = /challenge/run


三、題目說明

這次 Challenge 提到每個 Linux 目錄中都存在兩個特殊的路徑...
其中 . 代表目前目錄。

題目舉例以下路徑其實都代表相同的位置:
/challenge
/challenge/.
/challenge/././././
/././challenge/./
而以下相對路徑也都相同:
challenge
./challenge
./././challenge
challenge/.
這些寫法看起來不同,但最終都會指向同一個目錄。


四、實際操作

這次 Challenge 要求先將目前工作目錄切換到 cd /
https://ithelp.ithome.com.tw/upload/images/20260922/20183180MLGAbFnS9k.png
接著必須使用.開頭的 Relative Path 執行程式
因此不能使用 challenge/run
而要使用 ./challenge/run
https://ithelp.ithome.com.tw/upload/images/20260922/201831801gsQxd4hKD.png
執行後成功完成 Challenge 並取得 Flag。
這也是第一次實際在 Linux 路徑中使用 .


五、challenge/run./challenge/run 的差異

假設目前位於 / 那麼 challenge/run./challenge/run
都會指向 /challenge/run
因此執行結果完全相同。
差別在於

寫法 說明
challenge/run 隱式相對路徑(Implicit Relative Path)
./challenge/run 顯式相對路徑(Explicit Relative Path)

加入 . 後,可以更明確表示我要從目前目錄開始尋找


六、今天的心得

今天第一次接觸 Linux 路徑中的特殊符號 .
一開始看到題目時,覺得只是多打一個點而已,但實際理解後才知道,這個點其實代表目前所在的位置。
透過這次 Challenge,我也發現 Linux 的路徑系統比想像中更靈活。
同一個目錄可以透過不同方式表示,而系統最終都能解析到相同的位置。
雖然目前學到的內容仍然屬於基礎操作,但這些概念未來在 Shell Script、程式執行以及資安工具使用上都會經常出現,因此提早理解它們的意義非常重要。


上一篇
Day 5|Relative Path:從目前位置找到目標
下一篇
Day 7|為什麼 run 找不到?認識 ./ 的真正用途
系列文
從 Linux 到 Pwn:30 天學習資安攻防8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言