1

node.js の child_process モジュールは、Linux の 'rm' コマンドを認識できません。みたいに使ってる

var exec = require('child_process').exec;
var child = exec('rm ' + ImgDir + '/formatted-*', function(error, stdout, stderr){});

しかし、これは次のように述べています。

stderr : 'rm' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。

誰かがこれについて助けることができますか?

4

2 に答える 2

0

コマンドを実行しようとしているユーザーを確認してください。次に、そのユーザーの$PATHに追加されていない場合は、そのユーザーのにあるかどうかを確認します$PATH。別のユーザーとしてログインするには:

sudo -u username /bin/bash

これで、そのユーザーとしてコンソールが作成されます。コマンドを使ってみてください。

これがあなたの理由です。おそらくディストリビューションに基づいています-異なるディストリビューションには、異なるプログラムの異なる「設定」があります。

于 2013-07-09T13:42:50.113 に答える
0

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
})

注意すべきもう 1 つの点はfs.unlink、ワイルドカードまたは正規表現が許可されていないため、ファイルを列挙してから削除fs.readfilesするファイルを列挙するために使用するunlinkことです。

于 2013-07-09T14:22:06.357 に答える