L'achèvement de l'onglet Bash développe «~» dans «/ home / ___» alors qu'il ne le faisait pas auparavant

13

Auparavant, si je tapais ~/biTab, avant, cela se transformait en ~/bin. Cependant, aujourd'hui , il a commencé à tourner ~/biTaben /home/username/bin.

Je préférerais l'avoir l'ancien, mais je ne suis pas sûr de ce qui s'est passé ... J'ai ajouté un script pour modifier mon achèvement bash mais je l'ai supprimé de mon ~./bashrcet redémarré le serveur.

Est-ce que quelqu'un sait ce qui provoquerait cela? Ou comment je le changerais?

EDIT J'ai donc découvert ce qui pourrait causer cela ... cela a à voir avec des /etc/bash_completionchoses comme ça. Quand je le fais bind -v, il montre que l'expansion du tilde est désactivée.

Donc je pense que si je modifie ça (un peu comme un hack), ça disparaîtra. Mais cela ne satisfait vraiment rien - comment ce changement s'est-il même produit en premier lieu? Je n'ai jamais rien exécuté en tant que sudo, et après plusieurs arrêts et redémarrages, ce comportement persiste.

Justin L.
la source

Réponses:

8

Vous ne mentionnez pas la distribution que vous utilisez (veuillez inclure ces informations dans votre question), mais j'ai vu un comportement similaire après avoir exécuté des mises à jour sur mes systèmes.

Ma meilleure supposition est lorsque vous avez exécuté une mise à jour du système, ou si elle s'est exécutée automatiquement, le package "bash-complètement" a été mis à jour ce qui a ajouté ce comportement. Dans les dérivés de Red Hat, vous pouvez trouver la documentation des packages dans /usr/share/doc/PACKAGENAME. Dans mon /usr/share/doc/bash-completion-1.3/CHANGES, les nouvelles modifications sont répertoriées via un format de journal des modifications.

Au lieu de modifier /etc/bash_completion, ce qui pourrait être écrasé lors de la prochaine mise à niveau du package, vous pouvez créer ~/.inputrcpour désactiver l'expansion du tilde. J'ai confirmé que bash_completion-1.3.6 honorera cela sur ma boîte Fedora 16.

set expand-tilde off

ÉDITER

Votre kilométrage peut varier avec ~/.inputrc. Bash a des fonctions qui peuvent remplacer ce comportement en fonction de ce que vous essayez de réaliser (par exemple un programme par rapport à un fichier ou un répertoire). Cette discussion sur Super User SE répond à une question similaire lors de la saisie semi-automatique d'une vimcommande. Dans ce cas, l'affiche originale a résolu son problème en ajoutant une fonction personnalisée à la sienne ~/.bashrc.

George M
la source
1
Le dernier bit dépend également de la distribution. Certaines distributions (par exemple, Gentoo) font la bonne chose et n'écrasent pas les fichiers sous /etcs'ils ont été modifiés.
njsg
1
Les dérivés de Red Hat le font aussi. Le fichier de xxxfichier de configuration de remplacement est ensuite appelé xxx.rpmnewsi les modifications de configuration ne sont pas critiques; si les changements de configuration sont vraiment nécessaires, l'original est renommé xxx.rpmsaveet xxxest le fichier du package.
vonbrand
expand-tilde ne fonctionne pas, j'ai fini par supprimer le code qui a fait l'expansion de mon ordinateur. Il se cassera probablement lors des mises à niveau du système mais: |
Justin L.