go標準命令詳解0 4 go clean

2021-07-09 06:26:30 字數 1624 閱讀 8756

執行go clean命令會刪除掉執行其它命令時產生的一些檔案和目錄,包括:

在使用go build命令時在當前**包下生成的與包名同名或者與go原始碼檔案同名的可執行檔案。在windows下,則是與包名同名或者go原始碼檔案同名且帶有「.exe」字尾的檔案。

在執行go test命令並加入-c標記時在當前**包下生成的以包名加「.test」字尾為名的檔案。在windows下,則是以包名加「.test.exe」字尾為名的檔案。我們會在後面專門介紹go test命令。

如果執行go clean命令時帶有標記-i,則會同時刪除安裝(執行go install命令)當前**包時所產生的結果檔案。如果當前**包中只包含庫原始碼檔案,則結果檔案指的就是在工作區的pkg目錄的相應目錄下的歸檔檔案。如果當前**包中只包含乙個命令原始碼檔案,則結果檔案指的就是在工作區的bin目錄下的可執行檔案。

還有一些目錄和檔案是在編譯go或c原始碼檔案時留在相應目錄中的。包括:「_obj」和「_test」目錄,名稱為「_testmain.go」、「test.out」、「build.out」或「a.out」的檔案,名稱以「.5」、「.6」、「.8」、「.a」、「.o」或「.so」為字尾的檔案。這些目錄和檔案是在執行go build命令時生成在臨時目錄中的。如果你忘記了這個臨時目錄是怎麼回事兒,可以再回顧一下前面關於go build命令的介紹。臨時目錄的名稱以go-build為字首。

如果執行go clean命令時帶有標記-r,則還包括當前**包的所有依賴包的上述目錄和檔案。

我們再以goc2p專案的logging為例。為了能夠反覆體現每個標記的作用,我們會使用標記-n。使用標記-n會讓命令在執行過程中列印用到的系統命令,但不會真正執行它們。如果想既列印命令又執行命令則需使用標記-x。現在我們來試用一下go clean命令:

hc@ubt

:~/golang/goc2p/src

$ go clean -x logging

cd /home/hc/golang/goc2p/src/logging

rm -f logging logging.exe logging.test logging.test.exe

現在,我們加上標記-i

hc@ubt

:~/golang/goc2p/src

$ go clean -x -i logging

cd /home/hc/golang/goc2p/src/logging

rm -f logging logging.exe logging.test logging.test.exe

rm -f /home/hc/golang/goc2p/pkg/linux_386/logging.a

如果再加上標記-r又會列印出哪些命令呢?請讀者自己試一試吧。

Go命令教程 1 標準命令詳解

go 語言的 1.5 版本在標準命令方面有了重大變更。這倒不是說它們的用法有多大的變化,而是說它們的底層支援已經大變樣了。讓我們先來對比一下 goroot pkg tool 平台相關目錄 中的內容。以下簡稱此目錄為 go 工具目錄。插播 平台相關目錄即以 命名的目錄,用於存放因特定平台的不同而不同的...

Go標準命令

1.bug 在瀏覽器中開啟github的golang專案,可以提交bug報告。go bug 2.build 編譯專案和檔案 交叉編譯 cgo enabled 0 goos darwin goarch amd64 go build o demo.darwin.amd64 cgo enabled 0 g...

go標準命令詳解0 7 go test

go test命令用於對go語言編寫的程式進行測試。這種測試是以 包為單位的。當然,這還需要測試原始碼檔案的幫助。關於怎樣編寫並寫好go程式測試 我們會在本章的第二節加以詳述。在這裡,我們只討論怎樣使用命令啟動測試。go test命令會自動測試每乙個指定的 包。當然,前提是指定的 包中存在測試原始碼...