Ubah direktori tanpa mengetik cd?

17

Apakah mungkin membuat direktori bash change di baris perintah hanya dengan mengetik direktori itu tanpa perintah cd?

Sebagai contoh apakah mungkin daripada menulis ini:

$ cd /tmp

Saya hanya ingin menulis ini saja:

$ /tmp

Dengan kata lain jika saya memanggil direktori sebagai aplikasi maka saya ingin mengatur direktori itu sebagai yang berfungsi.

Vladimir
sumber
9
Apakah harus bash? zsh bisa melakukannya ( autocd)
Michael Mrozek
1
Tidak-tidak-tidak, saya perlu solusi dalam bash =) Itulah persyaratan utama seperti pada beberapa lembaga ilmiah di Rusia yang ada hanya ada bash sebagai bahasa scripting;)
Vladimir
Jumlah mengetik yang disimpan dengan tidak mengetik "cd" kemungkinan akan diimbangi dengan tidak memiliki pelengkapan otomatis default yang cerdas untuk jalur. Juga metode ini mengubah dir, sesering orang mengubah dir, agak menakutkan karena secara tidak sengaja menjalankan program (berpotensi berbahaya) (yang menurut Anda adalah direktori) menjadi sangat mungkin.
michael
Ini bekerja untuk saya di ZSH
ishidex2

Jawaban:

36

Di bash ada juga autocdopsi. Anda dapat mengaktifkannya dengan menggunakan shopt -s autocd:

pbm@tauri ~ $ shopt -s autocd
pbm@tauri ~ $ django # Now just type this
cd ./django    <- it's done automatically
pbm@tauri ~/django $
pbm
sumber
2
Fitur baru favorit saya di bash 4 untuk penggunaan interaktif. (Untuk skrip, ini **.) Sayangnya, ini tidak ada dalam versi yang lebih lama.
Gilles 'SO- stop being evil'
0

Saya akan membayangkannya. Ada beberapa mekanisme tangkap semua yang dimiliki Ubuntu. Ketika Anda menjalankan perintah yang tidak ada di sistem, kadang-kadang dikatakan:

Tidak ada perintah 'foo' yang Anda maksud: ...

Saya yakin Anda dapat membajak apa pun itu dan menambahkan tanda centang untuk melihat apakah itu diberikan direktori. Mungkin patut memposting pertanyaan lain menanyakan apa yang melakukan itu.

EDIT: Ditemukan: https://wiki.ubuntu.com/CommandNotFoundMagic

Shawn J. Goff
sumber
Ya, itulah yang orang akan harapkan - namun, bash lebih pintar dari kita dan bahkan tidak memanggil command_not_found_handle untuk direktori :(
Thomas Themel
Setelah beberapa penelitian, saya menemukan patch kecil ( mail-archive.com/[email protected]/msg06761.html ) yang dapat memperbaikinya. Sayangnya tambalan ini tidak resmi sehingga tidak dapat digunakan dengan versi stok bash yang disediakan dengan ubuntu.
Vladimir