node.js 的 child_process 模块无法识别 linux 的 'rm' 命令。我像使用它一样
var exec = require('child_process').exec;
var child = exec('rm ' + ImgDir + '/formatted-*', function(error, stdout, stderr){});
但这说:
stderr : 'rm' 不是内部或外部命令、可运行程序或批处理文件。
有人可以帮忙吗?
node.js 的 child_process 模块无法识别 linux 的 'rm' 命令。我像使用它一样
var exec = require('child_process').exec;
var child = exec('rm ' + ImgDir + '/formatted-*', function(error, stdout, stderr){});
但这说:
stderr : 'rm' 不是内部或外部命令、可运行程序或批处理文件。
有人可以帮忙吗?
检查命令尝试以哪个用户身份执行。然后检查它是否在该用户的$PATH
如果不添加到该用户的$PATH
. 以其他用户身份登录:
sudo -u username /bin/bash
您现在将拥有一个作为该用户的控制台。现在尝试使用该命令。
这是你的理由。它很可能基于您的发行版 - 不同的发行版对不同的程序有不同的“设置”。
您似乎正在尝试在 Windows 系统上执行 Linux 命令。如果您想以适用于所有支持的操作系统的方式执行文件系统操作,则应使用fs 模块而不是启动子进程。
var fs = require('fs');
fs.unlink("/path/to/file", function(err){
// do stuff after you've deleted your file
// or just resolve a promise and go on with your day
})
如果要烘烤整个目录,请使用 fs.rmdir:
fs.rmdir("/path/to/directory", function(err){
// do stuff after you've deleted your directory
})
另一件需要注意的是,fs.unlink
它不允许使用通配符或正则表达式,因此您将要使用fs.readfiles
枚举文件,然后枚举unlink
要删除的文件。