go clean
執行go clean命令會刪除掉執行其它命令時產生的一些文件和目錄,包括:
在使用go build命令時在當前代碼包下生成的與包名同名或者與Go源碼文件同名的可執行文件。在Windows下,則是與包名同名或者Go源碼文件同名且帶有“.exe”后綴的文件。
在執行go test命令并加入-c標記時在當前代碼包下生成的以包名加“.test”后綴為名的文件。在Windows下,則是以包名加“.test.exe”后綴為名的文件。我們會在后面專門介紹go test命令。
如果執行go clean命令時帶有標記-i,則會同時刪除安裝當前代碼包時所產生的結果文件。如果當前代碼包中只包含庫源碼文件,則結果文件指的就是在工作區的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總結
- 上一篇: go build
- 下一篇: golang内存对齐