PDA

View Full Version : [BASH] Controllare se un file è di tipo "eseguible"


vv1984
09-01-2008, 14:38
Ciao a tutti, vorrei realizzare uno script che
mi controlli quali file in una gerarchia sono eseguibili
e quali no.

Ho pensato a tre soluzioni, ma immagino ce ne
sia senz'altro una migliore:

1- Controllare quali file hanno diritto di esercuzione
(quali contengono il carattere "x" tra i diritti..)
Ma penso non sia nemmeno corretta del tutto.

2- Controllare "burtalmente" le estensioni dei file,
ma penso che forse nemmeno questa ci azzecca molto..

3 -Avevo pensato infine di controllare l'output del comando
"file" per vedere se all'interno appariva la parola "executable",
ma non è proprio una bella soluzione..


Aiuto!

grazie,
Blob

Guille
09-01-2008, 16:03
for i in `ls`
do
if [ -x $i -a ! -d $i ]
then echo $i "è eseguibile !"
fi
done


Per ulteriori chiarimenti clicca (http://www.ss64.com/bash/test.html)

vv1984
09-01-2008, 16:11
for i in `ls`
do
if [ -x $i -a ! -d $i ]
then echo $i "è eseguibile !"
fi
done


Per ulteriori chiarimenti clicca (http://www.ss64.com/bash/test.html)

Grazie mille!
Ora so dove trovare il manuale per i test!!! Non avevo capito che sono
la stessa cosa degli if... :doh:

if [ -x $i -a ! -d $i ]

IF è eseguibile AND non è una directory

ok! :sofico: