Verifique se um comando é executável [duplicado]

0

Como você pode verificar se um comando pode ser executável ou não no Linux?

Exemplo:

xeyes
    
por Žan Konečnik 23.05.2018 / 08:26

3 respostas

1

De man bash no parágrafo de expressões condicionais:

-x file

True if file exists and is executable.

Então, você pode usar:

[ -x /usr/bin/xeyes ] && echo "File is executable" || echo "File is not an executable or does not exist"
    
por 23.05.2018 / 08:32
0

Se você não conhece um caminho para o comando, você pode usar which para verificar onde está (é claro, se você o tiver em $ PATH). Se você conhece um caminho para o arquivo de comando, use if -x /path/to/command statement.

    
por 23.05.2018 / 08:32
0

Se você souber a localização de onde o comando binary é mantido, basta fazer um ls -l . Se você não souber o local, primeiro localize o local usando o comando which

$ which xeyes
/usr/bin/xeyes

Se o comando tiver permissão de execução ( x ) definido, ele será executável.

$ ls -l /usr/bin/

-rw-rw-r-- 1 arushirai arushirai 0 May 23 11:58 123
-rwxrwxr-x 1 arushirai arushirai 0 May 23 11:58 xeyes

O -x <filename> , na verdade, verifica se o arquivo tem permissão de execução definida

Explicação:

A primeira coluna de ls -l mostra a permissão no arquivo.

-rwxrwxr-x
  • r é permissão de leitura
  • w é permissão de gravação
  • x é permissão de execução

-rwxrwxr-x

  • 1º bit: informa type of file ( - é para arquivo regular)
  • Próximas 3 bits: owner permission ( rwx : ler, gravar e executar)
  • Próximas 3 bits: group permission ( rwx : ler, gravar e executar)
  • Próximas 3 bits: other permission ( r-x : permissão de leitura e execução)

Para mais informações sobre permissões de arquivos, leia: link

    
por 23.05.2018 / 08:31