2015-01-16 32 views
-1

成功構建.cpp擴展文件後,需要使用./a.out命令執行a.out文件。 ./表示什麼?這只是一種在終端上執行它的方法嗎?對它代表的是什麼有進一步的解釋?什麼是./在終端上執行期間

+1

目錄'.'是當前目錄,所以'./a.out'是當前目錄中的'a.out'文件。而FYI,目錄'..'是父目錄。此外,這與C++或一般編程無關,並且應該在[SuperUser](http://superuser.com/tour)上詢問。 –

+0

重複:http://stackoverflow.com/questions/9658364/basic-unix-syntax – xgdgsc

回答

3

這與C++無關。它適用於unix類似的操作系統。 的./說

看在我的劇本,而不是尋找當前目錄下的所有 目錄中$PATH

1

.是當前目錄(如..是當前目錄的父目錄),所以./a.out表示「從當前目錄運行a.out程序」。

適用於在路徑中沒有.的人。這是一個好主意,如果你分享你的盒子或過於偏執,但對於一個家庭盒子,它可能更容易,只需.到路徑的末尾,所以你不必使用長版本。

+1

將'.'添加到'PATH'還有其他問題;如果我鍵入'foo',如果名爲'foo'的文件或目錄恰好存在(即「Permission denied」,而不是「Command not found」),則可能會出現「奇怪」錯誤... – Carpetsmoker

+0

@Carpetsmoker,can別說我曾經遇到過這種事,也許我只比普通熊更聰明:-) – paxdiablo

1

指定。如果你做了ls -al,它會列出當前目錄中的文件和文件夾,您會注意到它顯示.作爲條目。

這對應於對當前目錄的引用。

要我們告訴shell執行a.out文件,它是相對於對我們說./a.out

1

當你在Linux shell中鍵入命令,來決定做什麼,外殼首先查找如果當前目錄其中有一個/。如果沒有,它會尋找:

  1. 一個內部shell命令。
  2. $PATH環境變量中列出的某些目錄中的可執行文件。

如果在名稱中/,然後查找與該名稱的文件,始終。您可能知道,.是當前目錄。

所以./做幾件事情:

  1. 它可以防止外殼解釋命令作爲外殼內置。
  2. 它阻止shell尋找$PATH中的程序。
  3. 它使shell僅在當前目錄中查找程序。