Seperti yang dirujuk dalam jawaban yang bagus ini, sistem POSIX memiliki biner eksternal cd
selain shell bawaan. Di OS X 10.8 adalah /usr/bin/cd
. Anda tidak dapat menggunakannya seperti cd
bawaan karena segera keluar setelah mengubah direktori kerjanya sendiri. Apa tujuannya?
Jawaban yang Diterima:
Ini berfungsi terutama sebagai memastikan kotak alat POSIX tersedia baik di dalam maupun di luar shell (lihat alasan POSIX untuk membutuhkannya).
Untuk cd
, itu tidak terlalu berguna tetapi perhatikan bahwa cd
mengubah direktori tetapi memiliki efek samping lain:ini mengembalikan status keluar yang membantu menentukan apakah Anda dapat chdir()
ke direktori itu atau tidak, dan menampilkan pesan kesalahan berguna yang menjelaskan mengapa Anda tidak dapat chdir()
ketika Anda tidak bisa.
Contoh:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} ; -print)
Efek samping potensial lainnya adalah automounting sebuah direktori.
Pada beberapa sistem, sebagian besar perintah eksternal untuk bawaan shell standar diimplementasikan sebagai symlink ke skrip yang sama dengan:
#! /bin/sh -
"${0##*/}" "[email protected]"
Itu adalah memulai shell dan menjalankan builtin di dalamnya.
Beberapa sistem lain (seperti GNU), memiliki utilitas sebagai perintah yang benar-benar dapat dieksekusi yang dapat menyebabkan kebingungan ketika perilakunya berbeda dari versi bawaan shell.