Saya ingin menyesuaikan fungsionalitas cdperintah 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 cddiartikan sebagai fungsi itu sendiri dan bukan cdbuilt-in.
Bagaimana cara mereferensikan cdbuilt-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.
pushdtidak mendukung -P. Tapi Anda benar, seperti yang ditunjukkan dalam pertanyaan itu function cdterlihat 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 ../)?