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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /bin/sh: 1: Syntax error: "(" unexpected
La commande ressemble à

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
(Bien que les \( soient transformé en ( lors de l affichage via console.log).

Voici le code générant et executant la commande.

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);
		});
 
	}
Qui m affiche:

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