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
, desktop
etc.)
applications/ desktop/ documents/
...
somedir_a/ somedir_b/
¿Cómo restaurar el comportamiento normal y hacer que bash solo sugiera somedir_a
y somedir_b
no 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 _longopt
función tiene un error en su definición, lo que provoca que este comportamiento esté _longopt
activado.
La solución es desactivar esta opción o anular la _longopt
funció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).