Например, если он передан в ls
качестве входных данных, он должен сказать мне, что /bin/ls
будет работать, если запускать ls
из командной строки.
источник
Например, если он передан в ls
качестве входных данных, он должен сказать мне, что /bin/ls
будет работать, если запускать ls
из командной строки.
Только встроенная оболочка скажет правильно, что будет делать оболочка для данного имени команды, поскольку только встроенные модули могут полностью знать об алиасах, функциях оболочки, других встроенных модулях и т. Д. Помните: во-первых, не все команды соответствуют исполняемым файлам.
Для Bourne Again оболочки bash
, встроенный является type
команда:
$ type '['
[ is a shell builtin
Для рыбы оболочкиfish
, The type
встроенный работает аналогично Баш. Чтобы получить только путь к исполняемому файлу, используйте command -v
:
$ type cat
cat is /bin/cat
$ command -v cat
/bin/cat
Для Korn Shell, ksh
, встроенный является whence
команда - с type
первоначально установлен как обычный псевдоним whence -v
и command
встроенный с -v
опцией , эквивалентной whence
:
$ whence -v ls
ls is a tracked alias for /bin/ls
Для Z Shell, zsh
, встроенные в это whence
команда, с command
встроенным с -v
опцией эквивалентных whence
и встроенными модулями type
, which
и where
эквивалентен whence
с параметрами -v
, -c
и -ca
соответственно.
$ whence ls
/bin/ls
Для ТС Shell, tcsh
, встроенные является which
команда - не следует путать с любой внешней командой с таким именем:
> which ls
ls: aliased to ls-F
> which \ls
/bin/ls
type
также встроен в Zsh?which-2.19-6.el6.x86_64
) помещает файл запуска/etc/profile.d/which2.sh
. Это читается не-csh оболочками, включая zsh. Это псевдонимыwhich
для себя. Так что для пользователей Zsh, в частности, он переопределяет разрывы встроенногоwhich
.Вы можете использовать
which
для этого:Он работает путем поиска
PATH
исполняемых файлов, соответствующих именам аргументов. Обратите внимание, что это не работает с псевдонимами оболочки:type
Однако работает:источник
which
не обязательно достаточно само по себе. Он возвращает только первое найденное имя в $ PATH ... Это имя может быть символической ссылкой, а не фактическим исполняемым файлом конца цепочки .which
это не (обязательно) возвращает исполняемый файл. Он возвращает первое совпадающее имя файла, которое он находит в $ PATH (или несколько похожих именованных файлов при использованииwhich -a
) ... Фактический исполняемый файл может содержать несколько ссылок.which locate
/usr/bin/locate
`
file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
Команда, которая находит фактический исполняемый файл
readlink -e
,(в сочетании с
which
)readlink -e $(which locate)
/usr/bin/mlocate
Чтобы увидеть все промежуточные ссылки :
источник
Можешь попробовать:
Это дает мне:
источник