Qual é o programa '[' que reside no / bin do meu sistema?

32

Eu estava recentemente navegando na pasta /bin do meu Fedora e notei um binário chamado [ . Eu tentei pesquisar na internet para obter mais informações sobre isso, mas não consegui encontrar nada de útil. Executá-lo através de strace não parece produzir nada útil para uma inspeção mais próxima também.

O que é isso? Eu deveria estar alarmado? Poderia ser o resultado de um comprometimento do sistema? Devo executá-lo? Pertence a algum pacote?

    
por NlightNFotis 10.02.2014 / 01:01

3 respostas

37

O binário [ que reside sob a árvore /bin em muitas distribuições GNU / Linux não é algo para se alarmar. Pelo menos no meu Fedora 19, ele faz parte do pacote coreutils, como demonstrado abaixo:

$ rpm -qf /bin/[
coreutils-8.21-13.fc19.x86_64

e é um sinônimo para test para permitir que expressões como [ expression ] sejam escritas em scripts de shell ou até mesmo uso interativo.

    
por 10.02.2014 / 01:01
5

O comando [ é o mesmo que o comando test .

Ele permite que você escreva declarações condicionais em shell scripts. Da página de manual do SunOS:

   if [ "$1" = "pear" ] || [ "$1" = "grape" ] || [ "$1" = "apple" ]
   then
       command
   fi

Se você removê-lo, os scripts serão quebrados!

    
por 10.02.2014 / 10:49
2

O [é sempre dado como um equivalente para testar, mas eu não tinha visto o] mencionado explicitamente, embora esteja sempre lá. Acabei de encontrar isso no link :

When the [ form is used, the last argument to the command must be a ]

que é reconfortante - finalmente tenho conclusão como eles dizem.

    
por 13.02.2014 / 21:19