加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang failed exec命令在终端中工作

发布时间:2020-12-16 19:29:20 所属栏目:大数据 来源:网络整理
导读:我尝试使用exec包运行mv命令时收到错误. 这是我想要做的一个例子: cmd := exec.Command("mv","./source-dir/*","./dest-dir")output,err := cmd.CombinedOutput()cmd.Run() 错误返回以下内容 退出状态1 输出返回此mv:rename ./source-dir/*到./dest-dir/*
我尝试使用exec包运行mv命令时收到错误.

这是我想要做的一个例子:

cmd := exec.Command("mv","./source-dir/*","./dest-dir")
output,err := cmd.CombinedOutput()

cmd.Run()

错误返回以下内容
退出状态1

输出返回此mv:rename ./source-dir/*到./dest-dir/*:没有这样的文件或目录

当我改变这一行时,我实际上可以让脚本工作:

cmd:= exec.Command(“mv”,“./ source-dir / *”,“./ destination-dir”)

以下内容:

cmd:= exec.Command(“mv”,“./ source-dir / file.txt”,“./ destination-dir”)

该命令工作并成功移动文件,但使用通配符不起作用.似乎星号未在命令中用作通配符.这是为什么?还有另一种在GO中使用通配符的方法吗?如果没有那么我怎么能以递归方式将所有文件从source-dir移动到dest-dir?

谢谢

当您在shell中键入命令时,shell将获取./source_dir/*并将其替换为匹配的所有文件的列表,每个参数一个. mv命令查看文件名列表,而不是通配符.

你需要做的是自己做同样的事情(使用filepath.Glob返回匹配文件的[]字符串),或者调用shell以便它可以完成工作(使用exec.Command(“/ bin / sh”),“ – c”,“mv./ source_dir /* ./dest_dir”)).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读