Como verificar se um arquivo é executável ou não? [duplicado]

0

Eu quero verificar se o arquivo é executável ou não através do prompt de comando para que eu não possa abrir o arquivo, seja ele executável ou não.

    
por Bharath Reddy 01.06.2017 / 16:10

2 respostas

3

[ -r file ] testa se um arquivo é legível.
[ -w file ] testa se um arquivo é gravável.
[ -x file ] testa se um arquivo é executável.

if [ -x file ]; then
     ./file
else
     echo "File is not executable"
fi

Experimente com um exemplo simples:

#!/bin/bash
touch testfile
test -x testfile && echo true || echo false
# --> false
chmod +x testfile
test -x testfile && echo true || echo false
# --> true
rm testfile
    
por RoVo 01.06.2017 / 16:55
2

A ferramenta recomendada para determinar um tipo de arquivo é file .

Exemplo de um arquivo executável.

$ file c.sh a.out
c.sh:  Bourne-Again shell script, ASCII text executable
a.out: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=a741679fcc57d5dafa76025d943090fdf614b7e2, not stripped
    
por John Goofy 01.06.2017 / 16:32