Dalam kebanyakan kasus, tidak ada perbedaan (tetapi lihat di bawah). The cd
perintah built-in perintah dalam semua kerang. Itu perlu built-in 1 sebagai perintah eksternal tidak dapat mengubah lingkungan shell yang memohon, dan mengubah direktori kerja merupakan perubahan dalam lingkungannya.
The bash
perintah builtin
pasukan shell untuk menggunakan built-in versi perintah, meskipun mungkin ada fungsi shell, alias, atau perintah eksternal yang tersedia dengan nama yang sama.
Dalam kasus di mana ada adalah misalnya fungsi shell dengan nama cd
, maka builtin cd
akan tidak menyebutnya. Menggunakan builtin cd
memintas setiap fungsionalitas kelebihan beban yang mungkin telah ditambahkan melalui fungsi shell atau alias oleh pengguna.
Contoh:
The cd
built-in command dapat kelebihan beban dengan fungsi yang update prompt:
cd() {
builtin cd "$@" && PS1=$(__update_prompt)
}
di mana __update_prompt
ada beberapa fungsi lain yang disediakan pengguna yang menghasilkan string.
Di builtin cd
dalam fungsi tidak akan memanggil fungsi secara rekursif. Menggunakan builtin cd
dalam shell di mana fungsi ini aktif, juga tidak akan memanggil fungsi.
1 Ada Unices dengan cd
perintah eksternal (macOS, dan, saya percaya, Solaris). Tujuan dari perintah itu, yang tidak dapat mengubah direktori kerja untuk sebuah shell, kemungkinan untuk memenuhi standar POSIX, yang terdaftar cd
sebagai salah satu utilitas eksternal yang harus tersedia ( cd
bukan salah satu dari "utilitas builtin khusus") . Ini juga dapat berfungsi sebagai tes untuk melihat apakah mengubah direktori kerja ke direktori tertentu akan dimungkinkan .