http://www.dotcoo.com/golang-tar-gzip
golang处理压缩包,我最常用的就是tar.gz了,所以今天写了一个测试一下.代码放这里以后浏览.
压缩文件
package main import ( "fmt" "os" "io" "archive/tar" "compress/gzip" ) func main() { // file write fw, err := os.Create("tar/lin_golang_src.tar.gz") if err != nil { panic(err) } defer fw.Close() // gzip write gw := gzip.NewWriter(fw) defer gw.Close() // tar write tw := tar.NewWriter(gw) defer tw.Close() // 打开文件夹 dir, err := os.Open("file/") if err != nil { panic(nil) } defer dir.Close() // 读取文件列表 fis, err := dir.Readdir(0) if err != nil { panic(err) } // 遍历文件列表 for _, fi := range fis { // 逃过文件夹, 我这里就不递归了 if fi.IsDir() { continue } // 打印文件名称 fmt.Println(fi.Name()) // 打开文件 fr, err := os.Open(dir.Name() + "/" + fi.Name()) if err != nil { panic(err) } defer fr.Close() // 信息头 h := new(tar.Header) h.Name = fi.Name() h.Size = fi.Size() h.Mode = int64(fi.Mode()) h.ModTime = fi.ModTime() // 写信息头 err = tw.WriteHeader(h) if err != nil { panic(err) } // 写文件 _, err = io.Copy(tw, fr) if err != nil { panic(err) } } fmt.Println("tar.gz ok") }
解压文件
package main import ( "fmt" "os" "io" // "time" "archive/tar" "compress/gzip" ) func main() { // file read fr, err := os.Open("tar/lin_golang_src.tar.gz") if err != nil { panic(err) } defer fr.Close() // gzip read gr, err := gzip.NewReader(fr) if err != nil { panic(err) } defer gr.Close() // tar read tr := tar.NewReader(gr) // 读取文件 for { h, err := tr.Next() if err == io.EOF { break } if err != nil { panic(err) } // 显示文件 fmt.Println(h.Name) // 打开文件 fw, err := os.OpenFile("file2/" + h.Name, os.O_CREATE | os.O_WRONLY, 0644/*os.FileMode(h.Mode)*/) if err != nil { panic(err) } defer fw.Close() // 写文件 _, err = io.Copy(fw, tr) if err != nil { panic(err) } } fmt.Println("un tar.gz ok") }
呼呼,以后打包下载东西的时候可以使用了.
相关推荐
本文实例讲述了Go语言压缩和解压缩tar.gz文件的方法。分享给大家供大家参考。具体分析如下: golang处理压缩包,最常用的就是tar.gz了,这里写了一个测试一下。 压缩文件: 代码如下:package main import ( “fmt”...
1. **解压**:首先,你需要使用`tar -zxvf go1.9.2.linux-amd64.tar.gz`命令来解压缩文件。 2. **移动到适当的目录**:将解压后的`go`目录移动到`/usr/local`下,这通常是安装软件的标准位置:`sudo mv go /usr/...
`golang.org.x.net.tar.gz`是一个压缩包,包含了`x.net`模块的所有源代码和相关资源,方便开发者下载和使用。 在`golang.org.x.net`模块中,我们可以找到许多与网络编程相关的子包,这些子包提供了丰富的功能,如...
首先,用户需要使用`wget`或`curl`命令下载文件,然后使用`tar`命令来解压`.tar.gz`文件。这个过程通常涉及以下步骤: 1. 下载文件:`wget https://dl.google.com/go/go1.11.1.linux-amd64.tar.gz` 或 `curl -O ...
标题“go1.13.4.linux-amd64.tar.gz”指的是Go编程语言的1.13.4版本的Linux AMD64架构的二进制发行版,被压缩成一个tar.gz文件。这个文件通常包含Go语言的完整编译器、解释器和其他必要的工具,供在64位Linux系统上...
2. 解压:使用`tar`命令解压缩文件,例如:`tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz`,这将把解压后的目录放在 `/usr/local/go` 下。 3. 配置环境变量:在`~/.bashrc`或`~/.bash_profile`文件中添加以下...
- 使用`tar`命令解压文件,例如`tar -C /usr/local -zxvf go1.16.6.linux-amd64.tar.gz`,这会将内容解压到 `/usr/local/go` 目录下。 - 配置环境变量,如在`~/.bashrc`或`~/.zshrc`中添加`export GOPATH=$HOME/go...
描述 "go1.21.0.linux-amd64.tar.gz" 没有提供额外的信息,但通常这样的压缩包解压后会包含一个名为 "go" 的目录,该目录下会有 bin、pkg、src 等子目录,分别对应可执行文件、编译后的库以及源代码的位置。...
标题中的"Go-go1.5.2.tar.gz"指的是Go语言的1.5.2版本,它已经被打包成一个tar.gz格式的压缩文件,这种格式在Linux系统中非常常见,因为它可以有效地压缩和传输大量文件。 1. **Go语言介绍**:Go语言由Robert ...
这个包是使用tar.gz格式压缩的,这是一种常见的在Unix-like系统上用于归档和压缩文件的方法。tar允许将多个文件和目录打包成一个单一的文件,而gzip则用于进一步压缩这个tar文件,以减少存储空间。 Go语言是由...
这个文件是一个tar归档,后缀为.gz,意味着它是使用gzip压缩算法进行压缩的,这是Linux中常见的压缩格式。 在Linux上安装这个包,用户首先需要使用`tar`命令解压文件,然后可能需要将解压后的目录移动到适当的位置...
".tar"文件是将多个文件或目录打包成一个单一的文件,而".gz"则是使用gzip工具进行压缩,以减少文件大小,便于存储和传输。 5. **安装过程**:在Linux环境下,安装这个压缩包通常涉及以下步骤: - 使用`tar -zxvf ...
1. **解压文件**:使用`tar -zxvf go-cqhttp_linux_amd64.tar.gz`命令解压缩文件。 2. **查看README**:阅读并遵循README.md中的指南进行操作。 3. **配置go-cqhttp**:编辑配置文件,如`config.json`,设置QQ账号、...
3. **文件格式**:`.tar.gz`是一种常见的归档文件格式,它首先使用tar工具将多个文件打包成一个单一的文件,然后用gzip工具进行压缩,以减少下载和存储空间。 描述中提到的"官网最新版"意味着这是官方提供的最新...
`.tar.gz`文件是一种常见的档案格式,用于在Linux和Unix-like系统中打包和压缩多个文件。在这种情况下,`go1.4.2.linux-amd64.tar.gz`包含了Go 1.4.2的Linux 64位二进制文件、库、文档和其他相关资源。用户可以通过...
".tar.gz"后缀表明这是一个经过tar归档并使用gzip压缩的文件,这是一种常见的在Unix和Linux系统中打包和压缩文件的方法。 描述中提到"适用于Linux 2.6.32或更高版本,Intel 64位处理器",这意味着该软件包可以在...
- 将`.tar`和`.gz`结合在一起,`tar.gz`文件就是一个打包并压缩的文件,解压后可以得到原始的文件结构。 5. **安装步骤**: - 使用`tar`命令解压文件:`tar -zxvf go1.4.2.linux-386.tar.gz` - 解压后,将Go的...
这个包采用tar.gz格式,是Linux系统中常用的归档和压缩方式,用于将多个文件或目录打包成一个单一的可下载文件,同时进行gzip压缩以减小文件大小,方便传输和存储。 Golang,又称为Go语言,是由Google开发的一种...
在解压"go1.8.linux-amd64.tar.gz"后,我们通常会得到一个名为"/go"的目录,其中包含了Go语言的完整安装,包括二进制文件(如`go`, `godoc`, `gofmt`等),标准库,以及必要的工具和文档。这些组件使得用户能够在...