El autocompletado siempre sugiere archivos en el directorio actual

El autocompletado siempre sugiere archivos en el directorio actual

Cuando se utiliza el autocompletado para cualquier comando que utilice la función de finalización incorporada _longopt(por ejemplo mkdir), el shell siempre sugiere el contenido del directorio actual además de las sugerencias deseadas.

Por ejemplo, si escribo

mkdir ~/somedir

y presione tabulador dos veces. Bash sugiere: (suponiendo que el tipo de directorio actual contenga applications, desktopetc.)

applications/   desktop/     documents/
...
somedir_a/      somedir_b/

¿Cómo restaurar el comportamiento normal y hacer que bash solo sugiera somedir_ay somedir_bno los otros archivos/directorios?

Versión de Bash: GNU bash, version 5.0.11(1)-release (x86_64-redhat-linux-gnu)
finalización de Bash:2.8

Respuesta1

Este comportamiento puede deberse a la opción de shell nullglob, que puede estar, por ejemplo, activada en su archivo .bashrc.

La razón es que la _longoptfunción tiene un error en su definición, lo que provoca que este comportamiento esté _longoptactivado.

La solución es desactivar esta opción o anular la _longoptfunción usted mismo.

Un efecto similar también se describe aquí:¿Por qué nullglob afecta la finalización de pestañas?, aunque esa pregunta es bastante difícil de encontrar a menos que sepas que esta opción es la culpable.

EDITAR: Como lo señala@fra-san, esto es unproblema conocidocon bash-completion. La solución llegó a la versión 2.9, sin embargo, esa versión aún no se incluye en Fedora (y quizás también en otros sistemas).

información relacionada