Saya ingin menyesuaikan fungsionalitas cd
perintah sesuai kebutuhan saya.
Saya mendefinisikan fungsi berikut -
function cd () { cd "$@" && pushd "$@"; }
Tujuan dari fungsi ini adalah untuk secara otomatis mendorong direktori ke tumpukan sehingga menghemat upaya saya untuk mengetik secara manual pushd .
setiap waktu.
Namun, fungsi di atas adalah fungsi rekursif tanpa batas, karena panggilan untuk cd
diartikan sebagai fungsi itu sendiri dan bukan cd
built-in.
Bagaimana cara mereferensikan cd
built-in pada fungsi ini?
Saya tahu bahwa alias dapat dihindari dengan menggunakan \
. Apa cara untuk menghindari fungsi atau referensi bawaan dengan cara yang lebih eksplisit?
Catatan: Saya tidak ingin mengubah nama fungsi saya menjadi hal lain.
pushd
tidak mendukung -P
. Tapi Anda benar, seperti yang ditunjukkan dalam pertanyaan itu function cd
terlihat agak salah, karena mengubah direktori dua kali.
alias cd=pushd
? Apa yang Anda harapkan terjadi ketika Anda melakukan sesuatu yang bukan jalur absolut (misalnya,cd ../
)?