Como executar um arquivo via grep

1

Sou um usuário básico que espera avançar para um nível intermediário. Ok, eu tenho um arquivo XAMPP (manager-linux-x64.run) que quando eu faço um

sudo ./manager-linux-x64.run

Funciona. Então, eu estava tentando me tornar profissional fazendo isso em seu diretório

ls | grep manager-linux-x64.run | sudo xargs ./

não funciona.it joga este erro

xargs: ./: Permission denied

A saída do arquivo de manager-linux-x64.run é

manager-linux-x64.run: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped

O que eu estou essencialmente tentando fazer é obter uma lista de arquivos no diretório, grep o executável, canalizar a saída e execute-o usando ./manager-linux-x64.run desde (sh, bash não funciona no arquivo .run).

Além disso, existe algum outro comando que possa executar um .run em si?

    
por Emma 22.02.2017 / 16:46

1 resposta

2

Um arquivo com uma extensão .run é um executável (embora a extensão não seja realmente importante, veja as notas sobre a permissão executável abaixo). Então, em relação à pergunta "existe algum outro comando que possa executar um .run em si?". A resposta é: seu interpretador de shell (provavelmente) pode e podemos alcançá-lo criando um subshell.

Tente isto:

realpath $(ls $PWD) | grep manager-linux-x64.run | xargs sh -c

Ele funcionará, mas talvez seja melhor usar find se o que você está tentando fazer é executar um arquivo sempre que ele atender a determinadas condições.

find $PWD -maxdepth 1 -type f -name "*.run" -exec {} \;

Notas:

Um executável pode ser um binário ou um script: se é um script com qualquer coisa fora do padrão , que seu próprio shell não suporte, não será executado.

Além disso, verifique se a permissão executável do arquivo está definida e altere com < href="http://manpages.ubuntu.com/manpages/xenial/man1/chmod.1.html"> chmod se necessário.

Por fim, um aviso : os one-liners anteriores tentarão executar qualquer coisa que encontrarem, o que pode invalidar os propósitos de segurança de ter que prefixar um arquivo com ./ ( barra de pontuação ):

  

"... Um usuário pode eliminar a necessidade de preceder comandos por uma barra (...) No entanto, isso geralmente não é aconselhável por razões de segurança ..."

    
por Samuel Santana 22.02.2017 / 18:23