2013-07-09 4 views
1

node.js의 child_process 모듈은 linux의 'rm'명령을 인식 할 수 없습니다.exec의 'rm'(linux)이 내부 또는 외부 명령으로 인식되지 않습니다.

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

처럼 사용하지만이 말하는 건가요 :

표준 에러 : 'RM하는'내부 또는 외부 명령, 작동 프로그램 자체 또는 배치 파일로 인식되지 않습니다.

다른 사람이 도움을 줄 수 있습니까?

+1

Windows에서 실행중인 것 같습니다. 이 오류는 Windows에서 발생합니다. – user568109

+1

'fs.unlink' (http://nodejs.org/docs/v0.4.1/api/fs.html#fs.unlink)를 멀티 플랫폼으로 사용할 것을 고려해 볼 수 있으며, 대부분의 OS에서 똑같이 동작합니다. – moka

답변

0

명령이 실행하려고하는 사용자를 확인하십시오. 그런 다음 해당 사용자의 $PATH에 추가하지 않으면 해당 사용자의 $PATH에 추가하십시오. 다른 사용자로 로그인하려면 :

sudo -u username /bin/bash 

이제 해당 사용자로 콘솔을 갖게됩니다. 이제 명령을 사용해보십시오.

이것이 이유입니다. 아마도 배포판을 기반으로 할 것입니다. 서로 다른 배포판은 서로 다른 프로그램에 대해 서로 다른 "설정"을 가지고 있습니다.

0

Windows 시스템에서 Linux 명령을 실행하려고하는 것 같습니다. 지원되는 모든 운영 체제에서 작동하는 방식으로 파일 시스템 작업을 수행하려면 하위 프로세스를 시작하는 대신 fs module을 사용해야합니다.

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

는 전체 디렉토리를 토스트하려면

from the docs:

, use fs.rmdir :

fs.rmdir("/path/to/directory", function(err){ 
    // do stuff after you've deleted your directory 
}) 

주목해야 할 또 다른 것은 당신이 원하는 있도록 fs.unlink는, 와일드 카드 또는 정규 표현식을 허용하지 않는다는 것입니다 fs.readfiles을 사용하여 파일을 열거하고 제거 할 파일을 unlink 입력하십시오.

+0

위에서 언급했듯이 나는 fs.unlink (ImgDir + '/ formatted- *', function (error, stdout, stderr))와 같이 변경된 개미를 만들었다. { if (stderr) { console.log ('stderr : '! + 표준 에러) 반환 } (오류 경우 == NULL) { 을 console.log ('간부 오류 : '+ 오류) 반환 } })' 그러나 오류 말한다 : ENOENT를 , 삭제하려는 이미지를 클릭하십시오. 하지만 디렉토리가 존재하고 경로가 잘되는 것처럼 보입니다. 여기에서 다른 것은 무엇입니까? – Waseem

관련 문제