跟踪nodejs中的shell命令的过程

问题描述

我要:

  1. 下载大型zip文件(curl
  2. 如果#1成功,则将文件解压缩到目标目录(unzip
  3. 如果#2成功,则删除文件(rm

我正在编写一个简单的nodejs脚本来完成上述操作,并为此使用了child_process.execSync

const execSync = require('child_process').execSync
execSync(`curl --output ${source} ${target}`)
execSync(`unzip -q ${target} -d ${target-dir}`)
execSync(`rm ${target}`)

我正在使用*sync的{​​{1}}版本来确保事情按顺序进行。由于这些过程运行时间长(内部包含大量文件的大型zip存档),因此我希望随着时间的推移能够取得进展。我既可以使用exec之类的东西,也可以使用npm progresscurl来显示进度,所以我不介意仅使用它。我该如何实现这一目标?

更新:这是我到目前为止已经尝试过的方法。我可以获得下载的进度条,但是我一直呆滞在unzip的空白屏幕上(这需要花费很长时间,因为存档非常大)。我可以简单地执行unzip,而无需使用静默选项unzip,但随后我会得到每个压缩文件的清单。我不要我只想要一个进度条。我尝试使用节点模块q和其他类似的模块,但是它们不起作用。

unzip

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...