Bonjour, je travaille sous node.js, et ai besoin de nettoyer un dossier de certains fichiers, mais d'en garder d autres.
Sous bash, je sais faire, et j'arrive à générer la commande sous node.js.
La commande générée copié/collé depuis mes logs fonctionne, mais exec me renvoie
La commande ressemble à
Code : Sélectionner tout - Visualiser dans une fenêtre à part /bin/sh: 1: Syntax error: "(" unexpected
(Bien que les \( soient transformé en ( lors de l affichage via console.log).
Code : Sélectionner tout - Visualiser dans une fenêtre à part find path/to/folder/ \( -name *.txt -o -name *.zip \) ! \( -name test.txt -o -name test2.txt \) -ls -delete
Voici le code générant et executant la commande.
Qui m affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 function purge(psmil, callback) { console.log('purge'); var arg = ['find', DOWNLOAD_DIR, '\(', '-name', '*.txt', '-o', '-name', '*.zip', '\)', '!', '\('], file = [], i = 0; //Creating the command arg.push('-name'); arg.push(file[i]); i = i + 1; while (i < file.length) { arg.push('-o'); arg.push('-name'); arg.push(file[i]); i = i + 1; } arg.push('\)'); arg.push('-ls'); arg.push('-delete'); //Start the command console.log('Purging...'); console.log(arg.join(' ')); exec(arg.join(' '), function(err, stdout, stderr){ console.log('Will delete:'); console.log(stdout); console.log(stderr); callback(psmil); }); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 purge Purging... find /path/to/folder/ ( -name *.txt -o -name *.zip ) ! ( -name test.txt -o -name test2.txt ) -ls -delete Will delete: /bin/sh: 1: Syntax error: "(" unexpected
Partager