[英]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.