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 adalahtypeperintah:$ type '[' [ is a shell builtin -
Untuk Kerang Ikan,
fish,typebuiltin 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 adalahwhenceperintah — dengantypeawalnya diatur sebagai alias biasa untukwhence -vdancommandbawaan dengan-vopsi yang setara denganwhence:$ whence -v ls ls is a tracked alias for /bin/ls -
Untuk Z Shell,
zsh, built-in adalahwhenceperintah, dengancommandbawaan dengan-vopsi yang setara denganwhencedantypebawaan ,which, danwheresetara denganwhencedengan opsi-v,-c, dan-camasing-masing.$ whence ls /bin/ls -
Untuk T C Shell,
tcsh, built-in adalahwhichperintah — 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