Saya memiliki 20 tahun yang lalu di suatu tempat atau saya bermimpi tentang hal itu.
Pada dasarnya:
Jika jika tipe blobblob
saya dapatkan
blobblob: command not found
Cukup adil.
Saya ingin agar ketika shell saya mendapatkan kesalahan itu - perintah tidak ditemukan - memeriksa untuk melihat apakah ada direktori dengan nama itu ('blobblob') dan jika ia melakukannya cd
ke direktori itu.
Saya yakin ada beberapa alasan untuk tidak melakukan ini atau melakukannya dengan hati-hati.
Saya hanya berpikir itu akan sangat rapi dan saya ingin mencobanya dengan mencari cara di suatu tempat (seperti di sini!).
Saya tidak tahu bagaimana melakukan pemrograman shell ini mungkin menyiratkan.
sumber
shopt -s autocd
di baris perintah itu berhasil. Sekarang saya bisa mulai mengetik nama direktori dan menggunakan autocomplete dan kemudian tekan kembali dan shellcd
ke dalam direktori. Keren abis !cd
tidak sulit untuk mengetik, dan sebagian besar mekanisme penyelesaian-tab lebih pintar ketika Anda memberi mereka lebih banyak konteks.autocd
shopt ditambahkan di bash versi 4. Jadi tidak tersedia pada MacOS (yang masih memiliki pesta versi 3.xx) kecuali alternatif, bash baru diinstal (misalnya, melalui homebrew).The utilitas autojump menyediakan mekanisme yang sama dengan daftar direktori yang paling banyak digunakan. Namun, hal ini membutuhkan kebosanan mengetik yang ditambahkan
j
Spacetetapi ini dikompensasi dengan menebak dengan benar lebih sering daripada tidak.Ini adalah yang terdekat dengan DWIM yang saya gunakan saat ini.
sumber
Saya pernah membuat skrip yang berguna untuk tujuan yang sama, dengan fungsi fcd untuk find-n-cd.
Anda mengetik
fcd foo
dan 3 hal dapat terjadi:"no such directory " $1
Mirip dengan itu tidak perlu Anda mengetikkan seluruh path, tetapi Anda telah memanggil fungsi secara eksplisit.
Anda harus
source
menggunakan fungsi (source fcd.sh
|. fcd.sh
) dan tidak dapat menyebutnya sebagai skrip, karenacd
akankah hanya terjadi dalam konteks skrip, dan setelah selesai Anda akan segera kembali ke dir mulai Anda.Karena ini bekerja dengan
locate
, itu cukup cepat dalam menemukan direktori (tetapi tidak selalu up to date).Itu tidak menangani kosong dalam nama direktori dengan anggun. Jika Anda memiliki solusi yang elegan untuk masalah ini, saya akan senang.
sumber
cd
secara otomatis, tanpa mengetikkan perintah apa pun. Jawaban ini lebih cocok untuk navigasi direktori cepat di terminal ./etc/bash.bashrc
sana, di ubuntu,function command_not_found_handle
yang tampak seperti itu bisa dimodifikasi.Ini juga berfungsi,
..given bahwa Anda membuat skrip cdf.sh khusus (di bawah) yang bersumber di shell. Untuk direktori sebagai parameter, skrip ini hanya sampai ke direktori induk untuk direktori yang ditemukan. Tambahkan baris berikut ke .bashrc atau .zshrc Anda, apa pun ..
Dan tambahkan kode ini ke file ~ / bin / cdf.sh yang harus Anda buat dari awal.
sumber
Letakkan ini di
~/.bashrc
sumber