我注意到在bash/zsh中,如果我使用cd //
,它會將我置於名稱爲「//」的目錄中--pwd顯示以及我的提示。//在bash中有什麼意義?
如果我使用兩個以上的斜槓,如cd ///
等,它只是讓我在/。
對bash中的目錄//有意義嗎?
我注意到在bash/zsh中,如果我使用cd //
,它會將我置於名稱爲「//」的目錄中--pwd顯示以及我的提示。//在bash中有什麼意義?
如果我使用兩個以上的斜槓,如cd ///
等,它只是讓我在/。
對bash中的目錄//有意義嗎?
POSIX標準告訴//
可能是由符合的操作系統來解釋一種特定的方式,而///
相當於/
:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12
如果路徑有兩個連續的字符開頭,第一可以用實現定義的方式來解釋跟在前導字符之後的組件,儘管兩個以上的前導字符應該被視爲單個字符。
這就是爲什麼bash
保持//
不變,以防底層操作系統實現這個特殊含義。
我發現這甚至可以與'cd//選擇/ foo'。根據'pwd',當前目錄是'/ opt/foo'。雖然我沒有看到Kornshell或Zsh。 – 2014-10-20 18:42:18
啊!我發現這是專門爲在PC上運行Bash(比如通過Cygwin)設置的,其中'foo/bar'是一個共享的遠程目錄,而不僅僅是一個本地目錄'/ foo/bar'。 – 2014-10-20 18:47:23
@DavidW。更普遍的是基於網絡的文件系統,這些文件系統使用//主機/目錄來遠程共享前綴。我想POSIX的細節早於bash/cygwin。 – jlliagre 2014-10-20 19:46:39
漂亮相關:[unix,以'/'和'//'開頭的路徑之間的區別(http://unix.stackexchange.com/q/12283/40596) – fedorqui 2014-10-20 16:02:21