|
é o operador pipe, que transmite a saída do primeiro comando para o seguinte.
de man bash
:
Um pipeline é uma sequência de um ou mais comandos separados pelo caractere |. O formato de um pipeline é:
[time [-p]] [ ! ] command [ | command2 ... ]
A saída padrão do comando é conectada através de um pipe à entrada padrão do comando2.
No exemplo que você fornece, id
parece não fazer nada com a saída de ls
, de modo que apenas retorna a mesma saída que a execução de id
sozinho.
||
é o operador OR lógico e especifica o que fazer se o primeiro comando retornar false
ou falhar (é diferente de zero).
de man bash
:
Os operadores de controle & amp; & amp; e || denotar listas AND e listas OR, respectivamente. Uma lista AND tem o formulário
command1 && command2
o comando2 é executado se, e somente se, o comando1 retornar um status de saída igual a zero.
Uma lista OR tem o formulário
command1 || command2
o comando2 é executado se e somente se o comando1 retornar um status de saída diferente de zero. O status de retorno das listas AND e OR é o status de saída do último comando executado na lista.
No seu exemplo, ls -la
é executado com êxito, portanto, o comando id
não é executado. Se você fez o seguinte:
ls -z || id
e tente passar uma opção inválida z
para ls
, então ele falhará e o comando id
será executado.