Я заметил это в стандартных псевдонимах CentOS

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

Итак, когда вы набираете, which , на самом деле, alias канала в /usr/bin/which , верно? Кажется немного бессмысленным

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

Труба, похоже, ничего не делает. Что здесь должно происходить?

1 ответ1

0

Псевдоним позволяет команде which сообщать о псевдонимах в дополнение к двоичным файлам и функциям оболочки. Например, у меня есть псевдоним для моей команды ls. Если я запускаю, which ls я получаю следующее:

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

Если я удаляю псевдоним для which , запустив unalias which затем запускается, which ls больше не показывает псевдоним:

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

Разница заключается в --read-alias . Страница справочника, для which описывает это так.

--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´.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .