Penyelesaian tab Bash memperluas "~" ke "/ home / ___" ketika sebelumnya tidak

13

Sebelumnya, jika saya mengetik ~/biTab, sebelumnya, itu akan berubah menjadi ~/bin. Namun, hari ini mulai berubah ~/biTabmenjadi /home/username/bin.

Saya lebih suka memilikinya yang pertama, tetapi saya tidak yakin apa yang terjadi ... Saya memang menambahkan skrip untuk mengedit penyelesaian bash saya tetapi saya menghapusnya dari saya ~./bashrcdan me-restart server.

Adakah yang tahu apa yang menyebabkan ini terjadi? Atau bagaimana saya akan mengubahnya kembali?

EDIT Jadi saya menemukan apa yang menyebabkan ini ... ada hubungannya dengan /etc/bash_completionhal-hal seperti itu. Ketika saya melakukannya bind -v, itu menunjukkan ekspansi tilde dimatikan.

Jadi saya pikir jika saya mengedit ini (seperti hack), itu akan hilang. Tapi itu tidak benar-benar memuaskan apa pun - bagaimana perubahan ini terjadi? Saya tidak pernah menjalankan apapun sudo, dan setelah beberapa kali shutdown dan restart perilaku ini tetap ada.

Justin L.
sumber

Jawaban:

8

Anda tidak menyebutkan distribusi apa yang Anda gunakan (harap sertakan informasi itu dalam pertanyaan Anda), tetapi saya telah melihat perilaku yang sama setelah menjalankan pembaruan pada sistem saya.

Tebakan terbaik saya adalah ketika Anda menjalankan pembaruan sistem, atau jika berjalan secara otomatis, paket "selesai-bash" telah diperbarui yang menambahkan perilaku ini. Dalam turunan Red Hat, Anda dapat menemukan dokumentasi paket di /usr/share/doc/PACKAGENAME. Di saya /usr/share/doc/bash-completion-1.3/CHANGES, perubahan baru terdaftar melalui format log perubahan.

Alih-alih memodifikasi /etc/bash_completion, yang berpotensi ditimpa pada peningkatan paket berikutnya, Anda dapat membuat ~/.inputrcuntuk menonaktifkan ekspansi tilde. Saya mengonfirmasi bash_completion-1.3.6 akan menghargai ini di kotak Fedora 16 saya.

set expand-tilde off

EDIT

Jarak tempuh Anda mungkin beragam ~/.inputrc. Bash memiliki fungsi yang dapat menimpa perilaku itu tergantung pada apa yang Anda coba selesaikan (misalnya program vs file atau direktori). Ini diskusi tentang Super User SE membahas pertanyaan serupa ketika autocompleting sebuah vimperintah. Dalam hal ini, poster asli menyelesaikan masalahnya dengan menambahkan fungsi khusus ke miliknya ~/.bashrc.

George M.
sumber
1
Bit terakhir juga tergantung pada distro. Beberapa distro (misalnya, Gentoo) benar-benar melakukan hal yang benar dan tidak menimpa file di bawah /etcjika mereka telah diubah.
njsg
1
Turunan Red Hat juga melakukannya. File xxxfile konfigurasi pengganti kemudian dipanggil xxx.rpmnewjika perubahan konfigurasi tidak kritis; jika perubahan dalam konfigurasi benar-benar diperlukan, maka aslinya diubah namanya xxx.rpmsavedan xxxmerupakan file dari paket.
vonbrand
expand-tilde tidak berfungsi, saya akhirnya hanya menghapus kode yang melakukan ekspansi dari komputer saya. Mungkin akan merusak upgrade sistem tetapi: |
Justin L.