Dalam kebanyakan kasus, tidak ada perbedaan (tetapi lihat di bawah). The cdperintah 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 bashperintah builtinpasukan 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 cdakan tidak menyebutnya. Menggunakan builtin cdmemintas setiap fungsionalitas kelebihan beban yang mungkin telah ditambahkan melalui fungsi shell atau alias oleh pengguna.
Contoh:
The cdbuilt-in command dapat kelebihan beban dengan fungsi yang update prompt:
cd() {
builtin cd "$@" && PS1=$(__update_prompt)
}
di mana __update_promptada beberapa fungsi lain yang disediakan pengguna yang menghasilkan string.
Di builtin cddalam fungsi tidak akan memanggil fungsi secara rekursif. Menggunakan builtin cddalam shell di mana fungsi ini aktif, juga tidak akan memanggil fungsi.
1 Ada Unices dengan cdperintah 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 cdsebagai salah satu utilitas eksternal yang harus tersedia ( cdbukan salah satu dari "utilitas builtin khusus") . Ini juga dapat berfungsi sebagai tes untuk melihat apakah mengubah direktori kerja ke direktori tertentu akan dimungkinkan .