Perintah yang digunakan bervariasi dari satu shell ke shell lainnya.
Hanya built-in shell yang akan memberi tahu seseorang dengan benar apa yang akan dilakukan shell untuk nama perintah yang diberikan, karena hanya built-in yang dapat sepenuhnya mengetahui tentang alias, fungsi shell, built-in lainnya, dan sebagainya. Ingat:Tidak semua perintah sesuai dengan file yang dapat dieksekusi.
-
Untuk shell Bourne Again,
bash
, built-in adalahtype
perintah:$ type '[' [ is a shell builtin
-
Untuk Kerang Ikan,
fish
,type
builtin bekerja mirip dengan bash. Untuk mendapatkan jalur ke file yang dapat dieksekusi, gunakancommand -v
:$ type cat cat is /bin/cat $ command -v cat /bin/cat
-
Untuk Korn Shell,
ksh
, built-in adalahwhence
perintah — dengantype
awalnya diatur sebagai alias biasa untukwhence -v
dancommand
bawaan dengan-v
opsi yang setara denganwhence
:$ whence -v ls ls is a tracked alias for /bin/ls
-
Untuk Z Shell,
zsh
, built-in adalahwhence
perintah, dengancommand
bawaan dengan-v
opsi yang setara denganwhence
dantype
bawaan ,which
, danwhere
setara denganwhence
dengan opsi-v
,-c
, dan-ca
masing-masing.$ whence ls /bin/ls
-
Untuk T C Shell,
tcsh
, built-in adalahwhich
perintah — jangan bingung dengan perintah eksternal apa pun dengan nama itu:> which ls ls: aliased to ls-F > which \ls /bin/ls
Bacaan lebih lanjut
- https://unix.stackexchange.com/questions/85249/
Anda dapat menggunakan which
untuk ini:
[email protected]:~$ which ls
/bin/ls
Ia bekerja dengan mencari PATH
untuk file yang dapat dieksekusi cocok dengan nama argumen. Perhatikan bahwa ini tidak berfungsi dengan alias shell:
[email protected]:~$ alias listdir=/bin/ls
[email protected]:~$ listdir /
bin dev initrd.img lib32 media proc selinux tmp vmlinuz
...
[email protected]:~$ which listdir
[email protected]:~$
type
, bagaimanapun, berfungsi:
[email protected]:~$ type listdir
listdir is aliased to `/bin/ls'
which
tidak tidak (harus) mengembalikan file yang dapat dieksekusi. Ini mengembalikan nama file pertama yang cocok ditemukan di $PATH (atau beberapa file bernama serupa saat menggunakan which -a
)... sebenarnya dapat dieksekusi mungkin berjarak beberapa tautan.
which locate
/usr/bin/locate
`file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
Perintah yang menemukan sebenarnya yang dapat dieksekusi adalah readlink -e
,
(bersamaan dengan which
)
readlink -e $(which locate)
/usr/bin/mlocate
Untuk melihat semua tautan perantara :
f="$(which locate)" # find name in $PATH
printf "# %s\n" "$f"
while f="$(readlink "$f")" ;do # follow links to executable
printf "# %s\n" "$f"
done
# /usr/bin/locate
# /etc/alternatives/locate
# /usr/bin/mlocate