Bash sekmesinin tamamlanması, daha önce olmadığı zaman “~” öğesini “/ home / ___” olarak genişletir


13

Önceden, daha ~/biTabönce yazsaydım , dönüşürdü ~/bin. Ancak, bugün ~/biTabdönüşmeye başladı /home/username/bin.

Öncekine sahip olmayı tercih ederim, ama ne olduğundan emin değilim ... Bash tamamlamamı düzenlemek için bir komut dosyası ekledim ama ~./bashrcsunucumdan kaldırdım ve sunucuyu yeniden başlattım.

Bunun gerçekleşmesine neyin sebep olacağını bilen var mı? Ya da onu nasıl değiştirirdim?

DÜZENLEME Bu yüzden neye sebep olabileceğini öğrendim ... bununla /etc/bash_completionve bunun gibi şeylerle ilgisi var. Bunu yaptığımda bind -v, tilde genişletmenin kapalı olduğunu gösterir.

Sanırım bunu düzenlersem (bir tür hack gibi), gidecek. Ama bu gerçekten hiçbir şeyi tatmin etmiyor - bu değişiklik ilk etapta nasıl oldu? Asla bir şey çalıştırmadım sudove çoklu kapanma ve yeniden başlatmalardan sonra bu davranış devam ediyor.

Yanıtlar:


8

Hangi dağıtımı kullandığınızdan bahsetmiyorsunuz (lütfen bu bilgileri sorunuza ekleyin), ancak sistemlerimde güncellemeler çalıştırdıktan sonra benzer davranışlar gördüm.

En iyi tahminim, bir sistem güncellemesi çalıştırdığınızda veya otomatik olarak çalıştırıldığında, bu davranışı ekleyen "bash-completion" paketi güncellendi. Red Hat türevlerinde, paket belgelerini içinde bulabilirsiniz /usr/share/doc/PACKAGENAME. 'De /usr/share/doc/bash-completion-1.3/CHANGESyeni değişiklikler, değişiklik günlüğü biçimiyle listelenir.

/etc/bash_completionBir sonraki paket yükseltmesinde potansiyel olarak üzerine yazılabilecek değişiklik yapmak yerine, ~/.inputrctilde genişletmeyi devre dışı bırakmak için oluşturabilirsiniz . Bash_completion-1.3.6'nın bunu Fedora 16 kutumda onurlandıracağını doğruladım.

set expand-tilde off

DÜZENLE

Kilometre ile değişebilir ~/.inputrc. Bash, tamamlamaya çalıştığınız şeye bağlı olarak bu davranışı geçersiz kılabilecek işlevlere sahiptir (örn. Program veya dosya veya dizine karşı). Süper Kullanıcı SE ile ilgili bu tartışma , bir vimkomutu otomatik olarak tamamlarken benzer bir soruyu ele almaktadır . Bu durumda, orijinal poster , sorununa özel bir işlev ekleyerek sorununu çözdü~/.bashrc .


1
Son bit dağıtımına da bağlıdır. Bazı dağıtımlar (örneğin, Gentoo) aslında doğru olanı yapar ve /etcdeğiştirildiyse altındaki dosyaların üzerine yazmaz .
njsg

1
Red Hat türevleri de öyle. Yapılandırma değişiklikleri kritik değilse, yeni yapılandırma dosyası xxxdosyası çağrılır xxx.rpmnew; yapılandırmadaki değişiklikler gerçekten gerekliyse, orijinal yeniden adlandırılır xxx.rpmsaveve xxxpaketteki dosyadır.
vonbrand

expand-tilde çalışmıyor, sadece bilgisayarımdan genişleme yapan kodu sildim. Muhtemelen sistem yükseltmeleri bozacak ama: |
Justin L.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.