在windows下打出tar.gz的嘗試

作爲一名嵌入式開發人員,Linux是必須使用的,但是不可避免的有些時候手頭上沒有裝有Linux的電腦,或者不想去打開虛擬機。尤其是當你僅僅只是需要打個tar包的時候。這時候當然你可以使用7z的桌面版程序,就可以解決這種簡單的需求。但是目前我遇到了一個這樣的問題:公司需要對外提供一個軟件打包工具,而用戶通常是沒有Linux系統的。這時候需要在程序中打出tar.gz的壓縮包。

第一種方法:使用gnu tar for windows

和其他很多GNU的軟件一樣,tar提供了Windows的版本,可以從gnu tar for windows這裏下載,官方分別提供了二進制可執行文件、文檔、源代碼的安裝包和壓縮包,可以根據需要進行下載。
因爲時間要求比較緊,所以我直接使用了調用二進制文件的方式進行打包,使用命令tar.exe cvf xxx.tar file即可簡單的打出tar包,需要注意的是,使用tar.exe的同時需要提供libintl-2libiconv-2兩個文件。
但是遺憾的是,使用tar.exe僅僅只能打出tar包,對與gz暫時無法提供:

The Win32 port can only create tar archives, but cannot pipe its output to other programs such as gzip or compress, and will not create tar.gz archives; you will have to use or simulate a batch pipe. BsdTar does have the ability to direcly create and manipulate .tar, .tar.gz, tar.bz2, .zip, .gz and .bz2 archives, understands the most-used options of GNU Tar, and is also much faster; for most purposes it is to be preferred to GNU Tar.

第二種方法:使用7z

作爲很好的一種壓縮軟件,7z擁有很多的用戶,同時7z也是一款開源軟件,當然也提供了源代碼和相應的命令行軟件。從這裏可以下載相應的文件。
同樣使用調用二進制文件的方式,7z的使用很簡單。命令如下:

7z.exe a archive files

7z可以直接通過archive 的後綴判斷需要生成的壓縮包的類型。使用7z打出tar.gz需要以下兩步:

7z.exe a archive.tar files
7z.exe a archive.tar.gz archive.tar

這樣圓滿的解決了我遇到的問題。當然這是一種很取巧的方式,在程序中更提倡使用的還是使用源代碼調用相應的方法。之後,我會繼續研讀tar和7z的源碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章