Na przykład, jeśli zostanie przekazany ls
jako dane wejściowe, powinien mi powiedzieć, że /bin/ls
będzie działać, jeśli zostanie uruchomiony ls
w wierszu polecenia.
źródło
Na przykład, jeśli zostanie przekazany ls
jako dane wejściowe, powinien mi powiedzieć, że /bin/ls
będzie działać, jeśli zostanie uruchomiony ls
w wierszu polecenia.
Tylko wbudowana powłoka powie jednemu poprawnie, co zrobi powłoka dla danej nazwy polecenia, ponieważ tylko wbudowane mogą w pełni wiedzieć o aliasach, funkcjach powłoki, innych wbudowanych itd. Pamiętaj: przede wszystkim nie wszystkie polecenia odpowiadają plikom wykonywalnym.
Dla Bourne Again Shell, bash
, wbudowany jest type
polecenie:
$ type '['
[ is a shell builtin
Dla ryb skorupach,fish
The type
wbudowane działa podobnie do bash. Aby uzyskać tylko ścieżkę do pliku wykonywalnego, użyj command -v
:
$ type cat
cat is /bin/cat
$ command -v cat
/bin/cat
Dla powłoki Korn ksh
, wbudowany jest whence
komenda - z type
wstępnie skonfigurować jako zwykły alias whence -v
a command
wbudowany z -v
ekwiwalentu opcja whence
:
$ whence -v ls
ls is a tracked alias for /bin/ls
Dla Z Shell zsh
, wbudowany jest whence
komenda, z command
wbudowaną z -v
ekwiwalentu opcja whence
a wbudowany ins type
, which
i where
równoważna whence
z opcjami -v
, -c
i -ca
odpowiednio.
$ whence ls
/bin/ls
Dla TC Shell tcsh
, wbudowany jest which
polecenie - nie mylić z dowolnego zewnętrznego polecenia o tej samej nazwie:
> which ls
ls: aliased to ls-F
> which \ls
/bin/ls
type
jest również wbudowany w Zsh?which-2.19-6.el6.x86_64
) Umieszcza plik startowy/etc/profile.d/which2.sh
. Jest to odczytywane przez powłoki inne niż csh, w tym zsh. Aliaswhich
do siebie. W szczególności dla użytkowników zsh zastępuje on wbudowane funkcjewhich
.Możesz użyć
which
do tego:Działa poprzez wyszukiwanie
PATH
plików wykonywalnych pasujących do nazw argumentów. Zauważ, że nie działa z aliasami powłoki:type
działa jednak:źródło
which
samo w sobie niekoniecznie wystarcza. Zwraca tylko pierwszą znalezioną nazwę w $ PATH ... Ta nazwa może być dowiązaniem symbolicznym, a nie rzeczywistym plikiem wykonywalnym końca łańcucha .which
czy nie (koniecznie) zwracają plik wykonywalny. Zwraca pierwszą pasującą nazwę pliku, którą znajdzie w zmiennej $ PATH (lub wiele podobnych nazwanych plików podczas używaniawhich -a
) ... Rzeczywisty plik wykonywalny może być oddalony o wiele linków.which locate
/usr/bin/locate
`
file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
Polecenie, które znajduje się rzeczywistą wykonywalnego
readlink -e
,(w połączeniu z
which
)readlink -e $(which locate)
/usr/bin/mlocate
Aby zobaczyć wszystkie linki pośrednie :
źródło
Możesz spróbować:
To daje mi:
źródło