La finalización de la pestaña Bash expande "~" a "/ home / ___" cuando no lo hacía antes

13

Anteriormente, si escribía ~/biTab, antes, se convertiría en ~/bin. Sin embargo, hoy comenzó a convertirse ~/biTaben /home/username/bin.

Preferiría tener el primero, pero no estoy seguro de lo que pasó ... Agregué un script para editar la finalización de mi bash, pero lo eliminé ~./bashrcy reinicié el servidor.

¿Alguien sabe qué haría que esto suceda? ¿O cómo lo volvería a cambiar?

EDITAR Así que descubrí qué podría causar esto ... tiene que ver con /etc/bash_completioncosas como esas. Cuando lo hago bind -v, muestra que la expansión de tilde está desactivada.

Así que creo que si edito esto (como un truco), desaparecerá. Pero eso realmente no satisface nada: ¿cómo ocurrió este cambio en primer lugar? Nunca ejecuté nada sudo, y después de múltiples apagados y reinicios, este comportamiento persiste.

Justin L.
fuente

Respuestas:

8

No menciona qué distribución está utilizando (incluya esa información en su pregunta), pero he visto un comportamiento similar después de ejecutar actualizaciones en mis sistemas.

Mi mejor conjetura es cuando ejecutó una actualización del sistema, o si se ejecutó automáticamente, se actualizó el paquete "bash-complete" que agregó este comportamiento. En los derivados de Red Hat, puede encontrar la documentación del paquete en /usr/share/doc/PACKAGENAME. En mi /usr/share/doc/bash-completion-1.3/CHANGES, los nuevos cambios se enumeran a través de un formato de registro de cambios.

En lugar de modificar /etc/bash_completion, lo que podría sobrescribirse en la próxima actualización del paquete, puede crear ~/.inputrcpara deshabilitar la expansión de tilde. Confirmé que bash_completion-1.3.6 honrará esto en mi caja Fedora 16.

set expand-tilde off

EDITAR

Su kilometraje puede variar con ~/.inputrc. Bash tiene funciones que pueden anular ese comportamiento dependiendo de lo que intente completar (por ejemplo, un programa frente a un archivo o directorio). Esta discusión sobre Super User SE aborda una pregunta similar cuando se completa automáticamente un vimcomando. En este caso, el póster original resolvió su problema agregando una función personalizada a la suya ~/.bashrc.

George M
fuente
1
El último bit también depende de la distribución. Algunas distribuciones (por ejemplo, Gentoo) realmente hacen lo correcto y no sobrescriben los archivos /etcsi se han cambiado.
njsg
1
Los derivados de Red Hat también lo hacen. xxxLuego se llama al archivo de configuración de reemplazo xxx.rpmnewsi los cambios de configuración no son críticos; Si los cambios en la configuración son realmente necesarios, se cambia el nombre del original xxx.rpmsavey xxxes el archivo del paquete.
vonbrand
expand-tilde no funciona, terminé simplemente borrando el código que hizo la expansión de mi computadora. Probablemente se romperá en las actualizaciones del sistema pero: |
Justin L.