Path
‘cd //;pwd’ #這裡發生了什麼?
一位同事剛剛指出了一些奇怪的事情,我很好奇解釋可能是什麼。
在我嘗試過的系統上,cd /’、‘cd //’ 和 ‘cd ///’ 都具有將目錄更改為文件系統根目錄的效果。但是,‘cd /; pwd’ 和 ‘cd ///; pwd’ 返回 ‘/’ 的響應,但是 ‘cd //; pwd’ 返回 ‘//’,即使它是文件系統根目錄,與其他情況一樣。
是什麼賦予了?
一些系統使用雙斜杠來表示網路上的主機名,例如,
//host/usr/bin
POSIX 在以下描述中對這種用法表示贊同
cd
:一個實現可以通過刪除任何不是前導字元的尾隨字元、用單個 替換多個非前導連續字元以及用單個替換三個或更多前導字元來進一步簡化curpath。如果由於這種規範化,curpath變數為空,則不應採取進一步的步驟。
<slash>
<slash>
<slash>
例如,Apollo 工作站就是這樣做的(請參閱Tim Berners-Lee 的常見問題解答中的*為什麼使用 //、# 等?*)。