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.


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 $

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


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/bug-bash@gnu.org/msg06761.html ) yang dapat memperbaikinya. Sayangnya tambalan ini tidak resmi sehingga tidak dapat digunakan dengan versi stok bash yang disediakan dengan ubuntu.
Vladimir
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.