鍍金池/ 教程/ GO/ go clean
go install
go clean
go list
go test
go doc與godoc
go build
go fix與go tool fix
go tool pprof
go run
go env
go tool cgo
標(biāo)準(zhǔn)命令詳解
go get
go vet與go tool vet

go clean

執(zhí)行go clean命令會(huì)刪除掉執(zhí)行其它命令時(shí)產(chǎn)生的一些文件和目錄,包括:

  1. 在使用go build命令時(shí)在當(dāng)前代碼包下生成的與包名同名或者與Go源碼文件同名的可執(zhí)行文件。在Windows下,則是與包名同名或者Go源碼文件同名且?guī)в小?exe”后綴的文件。

  2. 在執(zhí)行go test命令并加入-c標(biāo)記時(shí)在當(dāng)前代碼包下生成的以包名加“.test”后綴為名的文件。在Windows下,則是以包名加“.test.exe”后綴為名的文件。我們會(huì)在后面專門介紹go test命令。

  3. 如果執(zhí)行go clean命令時(shí)帶有標(biāo)記-i,則會(huì)同時(shí)刪除安裝當(dāng)前代碼包時(shí)所產(chǎn)生的結(jié)果文件。如果當(dāng)前代碼包中只包含庫(kù)源碼文件,則結(jié)果文件指的就是在工作區(qū)的pkg目錄的相應(yīng)目錄下的歸檔文件。如果當(dāng)前代碼包中只包含一個(gè)命令源碼文件,則結(jié)果文件指的就是在工作區(qū)的bin目錄下的可執(zhí)行文件。

  4. 還有一些目錄和文件是在編譯Go或C源碼文件時(shí)留在相應(yīng)目錄中的。包括:“_obj”和“_test”目錄,名稱為“_testmain.go”、“test.out”、“build.out”或“a.out”的文件,名稱以“.5”、“.6”、“.8”、“.a”、“.o”或“.so”為后綴的文件。這些目錄和文件是在執(zhí)行go build命令時(shí)生成在臨時(shí)目錄中的。如果你忘記了這個(gè)臨時(shí)目錄是怎么回事兒,可以再回顧一下前面關(guān)于go build命令的介紹。臨時(shí)目錄的名稱以go-build為前綴。

  5. 如果執(zhí)行go clean命令時(shí)帶有標(biāo)記-r,則還包括當(dāng)前代碼包的所有依賴包的上述目錄和文件。

我們?cè)僖詆oc2p項(xiàng)目的logging為例。為了能夠反復(fù)體現(xiàn)每個(gè)標(biāo)記的作用,我們會(huì)使用標(biāo)記n。使用標(biāo)記-n會(huì)讓命令在執(zhí)行過(guò)程中打印用到的系統(tǒng)命令,但不會(huì)真正執(zhí)行它們。如果想既打印命令又執(zhí)行命令則需使用標(biāo)記-x。現(xiàn)在我們來(lái)試用一下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

現(xiàn)在,我們加上標(biāo)記-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

如果再加上標(biāo)記-r又會(huì)打印出哪些命令呢?請(qǐng)讀者自己試一試吧。

上一篇:go tool cgo下一篇:go doc與godoc