簡體   English   中英

Node js子進程刪除多個文件

[英]Node js child process delete multiple files

我正在嘗試設置一個node.js子進程,以通過終端刪除多個文件。 這在刪除一個文件時有效-但在提供一組文件時失敗。

const spawnSync = require('child_process').spawnSync;

var toDelete = array.join(' ');

  if (toDelete.length) {    
    spawnSync('rm', ['-rf', toDelete ]);
  }

我以為最終會以rm -rf data / foo.txt data / bar.txt的形式發送 (當我將其輸入終端時有效)

...但是,我一定做錯了。

這是因為它將您的字符串作為單個參數傳遞給rm -rf就像您鍵入的那樣:

# rm -rf "data/foo.txt data/bar.txt" 

由於空格在Unix中是文件名的有效字符,因此它將嘗試刪除一個名為“ data / foo.txt data / bar.txt”的文件。

因此,您應該直接傳遞數組:

  if (toDelete.length) {    
    spawnSync('rm', ['-rf'].concat(toDelete));
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM