Come si verifica se un file è eseguibile in node.js?Come posso verificare se un file è eseguibile in node.js?
Forse qualcosa di simile
fs.isExecutable(function (isExecutable) {
})
Come si verifica se un file è eseguibile in node.js?Come posso verificare se un file è eseguibile in node.js?
Forse qualcosa di simile
fs.isExecutable(function (isExecutable) {
})
Si potrebbe utilizzare la chiamata fs.stat
per questo.
La chiamata fs.stat
restituisce un oggetto fs.Stats.
In tale oggetto è un attributo mode
. La modalità ti dirà se il file è eseguibile.
Nel mio caso, ho creato un file e ha fatto un chmod 755 test_file
e poi corse attraverso il seguente codice:
var fs = require('fs');
test = fs.statSync('test_file');
console.log(test);
Quello che ho ottenuto per test.mode
era 33261.
This link è utile per la conversione di mode
di nuovo per unire i permessi dei file equivalenti.
Nel nodo il metodo restituisce un oggetto fs.stat
fs.Stats
, è possibile ottenere il permesso di file tramite la proprietà fs.Stats.mode. Da questo post: Nodejs File Permissions
Date un'occhiata a https://www.npmjs.com/package/executable ha anche un metodo di
executable('bash').then(exec => {
console.log(exec);
//=> true
});
Un'altra opzione che si basa solo su .sync() il modulo incorporato fs
è quello di utilizzare uno o fs.accessfs.accessSync. Questo metodo è più semplice di ottenere e analizzare la modalità file. Un esempio:
const fs = require('fs');
fs.access('./foobar.sh', fs.constants.X_OK, (err) => {
console.log(err ? 'cannot execute' : 'can execute');
});
di lettura/scrittura o esecuzione? dobbiamo essere in grado di eseguire il file –
Buon punto. Ho aggiornato l'esempio per abbinare la domanda specifica. –
C'è anche un modulo molto utile [mode-to-permessi] (https://github.com/mmalecki/mode-to-permissions) - se non si vuole pasticciare con i dettagli . – tomekwi
a destra, vorrei passare questo, se ha spiegato come scoprire che un file era eseguibile data la modalità –