O que alias que = 'alias | … Faz?

0

Eu notei isso em aliases prontos para o CentOS

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Então, quando você digita which , na verdade canaliza alias para /usr/bin/which , certo? Parece um pouco sem sentido

$> echo xxxxxxxxxx | /usr/bin/which echo
/usr/bin/echo

O tubo não parece fazer nada. O que deveria estar acontecendo aqui?

    
por spraff 06.12.2016 / 16:49

1 resposta

0

O alias permite que o comando which informe sobre aliases além de binários e funções de shell. Por exemplo, eu tenho um alias para o meu comando ls. Se eu executar which ls , obtenho o seguinte:

$ which ls
alias ls='ls --color=auto'
    /usr/bin/ls

Se eu remover o alias de which executando unalias which , a execução de which ls não mostrará mais o alias:

$ unalias which
$ which ls
/usr/bin/ls

A diferença é por causa da opção --read-alias . A man page para which descreve isso dessa maneira.

--read-alias, -i
    Read aliases from stdin, reporting matching ones on stdout. This is
    useful in combination with using an alias for which itself. For
    example
    alias which=´alias | which -i´.
    
por 06.12.2016 / 18:02

Tags