Shell

shell 如何解釋 ././command-name?

  • September 1, 2017

hello2我在目前工作目錄中有一個名為的二進製文件。

要執行它,我需要按下./hello2它並顯示輸出。

但是當我使用以下命令././hello2時它仍然有效。

你能解釋一下shell是如何解釋這個命令的嗎?

當你執行命令時

$ ./hello2

hello2shell在目錄中查找文件.,即在目前目錄中。然後它根據一些規則執行腳本或二進製文件(在這種情況下是無趣的)。

命令

$ ././hello2

還會使 shell 執行該文件。

這是因為../.是同一個目錄。

每個目錄都有一個.目錄條目。此條目對應於目錄本身。所以說和說等等./是一樣的。././``././././

唯一的區別是系統可能需要做一些額外的目錄查找(除非 shell 很聰明並且發現了明顯的簡化)。


每個目錄也有一個..指向其父目錄的條目。

這意味著如果目前目錄被呼叫alamin,那麼下面的程式碼也會執行該文件:

$ ../alamin/hello2

一樣

$ ../alamin/./hello2

$ .././alamin/./hello2

根目錄 ,/是一個特例。它的..目錄條目與其.目錄條目相同。這意味著您不能使用/...

另請參閱:文件夾的連結數量不反映真實狀態?

引用自:https://unix.stackexchange.com/questions/389783