bug:golang通过exec.Command()执行命令报错

bug:golang通过exec.Command()执行命令报错

1 通过exec指定zip命令报错

需求描述:压缩某个目录下的所有文件

  • 在执行过程中,发现zip命令可行,但是 /usr/bin/zip test.zip *发现无法压缩成功,程序直接报错退出,后来排查返现是golang中的exec.Command()不支持*通配符,但是我们可以通过下面的方式实现效果。

*替换为所有的文件名及目录:

go 复制代码
package main

import (
	"fmt"
	"os/exec"
	"path/filepath"
)

func main() {
	zipName := "9999.zip"
	command := []string{
		"-r",
		zipName,
	}
	tmp, err := filepath.Glob("*")
	if len(tmp) == 0 {
		fmt.Println("No matching files found")
	}
	fmt.Println("* tmp=", tmp)
	command = append(command, tmp...)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("args=", command)

	cmd := exec.Command("/usr/bin/zip", command...)
	fmt.Println("compression cmd=", cmd)
	err = cmd.Run()
	if err != nil {
		fmt.Println("compression dir err=", err)
		return
	}

}
相关推荐
姚青&11 小时前
Bug基本概念
bug
AI多Agent协作实战派13 小时前
AI多Agent协作系统实战(三十九):AI修对了Bug,却越了权——自动化团队的第一条铁律
人工智能·自动化·bug
圣殿骑士-Khtangc14 小时前
Go错误处理最佳实践进阶从error到panic的完整指南
golang
运维开发笔记14 小时前
3.6 Go defer 语句学习笔记
golang
FfHUCisI15 小时前
Golang HTTP 路由设计与请求处理
开发语言·http·golang
存在morning16 小时前
【Python 开发实践 一】Python vs Go vs Java 三门语言对比
java·python·golang
圣殿骑士-Khtangc1 天前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
ShineWinsu1 天前
对于C++:C++11中lambda、function、bind的解析
c++·面试·笔试·开发·lambda·bind·function
rannn_1111 天前
【力扣hot100】链表专题下|138、148、23、146
java·算法·leetcode·链表·开发
xzlAwin1 天前
Win10安装Go语言多版本管理器g工具
开发语言·golang