在 CentOS 上使用 Golang 打包文件,你可以使用 Go 的 archive/zip 包来创建 ZIP 文件。以下是一个简单的示例,展示了如何使用 Go 在 CentOS 上创建一个包含指定文件的 ZIP 文件。
首先,确保你已经安装了 Go。如果没有安装,可以通过以下命令安装:
sudo yum install golang 然后,创建一个名为 main.go 的文件,并添加以下代码:
package main import ( "archive/zip" "fmt" "io/ioutil" "os" ) func main() { // 要打包的文件列表 files := []string{"file1.txt", "file2.txt"} // 创建一个新的 ZIP 文件 zipFile, err := os.Create("output.zip") if err != nil { fmt.Println("Error creating zip file:", err) return } defer zipFile.Close() // 创建一个 zip.Writer zipWriter := zip.NewWriter(zipFile) defer zipWriter.Close() // 遍历要打包的文件列表 for _, file := range files { err := addFileToZip(zipWriter, file) if err != nil { fmt.Println("Error adding file to zip:", err) return } } fmt.Println("ZIP file created successfully") } func addFileToZip(zipWriter *zip.Writer, filePath string) error { // 读取要添加到 ZIP 文件中的文件 fileData, err := ioutil.ReadFile(filePath) if err != nil { return err } // 创建一个新的 zip.FileHeader header, err := zip.FileInfoHeader(&zip.FileInfo{Name: filePath}) if err != nil { return err } // 设置 zip.FileHeader 的模式(例如:普通文件、目录等) header.Mode = 0600 // 创建一个新的 zip.File zipFile, err := zipWriter.CreateHeader(header) if err != nil { return err } // 将文件数据写入 zip.File _, err = zipFile.Write(fileData) if err != nil { return err } return nil } 在这个示例中,我们创建了一个名为 output.zip 的 ZIP 文件,并将 file1.txt 和 file2.txt 添加到其中。你可以根据需要修改 files 列表以包含要打包的文件。
保存 main.go 文件后,在终端中运行以下命令来构建并运行程序:
go build main.go ./main 程序运行完成后,你应该会在当前目录下看到一个名为 output.zip 的 ZIP 文件,其中包含了指定的文件。