¿Se puede modificar la finalización del comando para `cd` para mostrar solo directorios e ignorar archivos?


12

Cuando estoy en un directorio en bash, y presiono cd Space Tab, muestra todo en el directorio como una posibilidad. ( Show all 1000 possibilities?) Esto es realmente engorroso cuando estoy en un directorio con muchos archivos regulares y relativamente pocos directorios.

Entonces, ¿es posible hacer que las opciones de autocompletar cdsolo incluyan directorios?

Sé que puedo obtener una lista de directorios dentro de un directorio haciendo

ls -d */

pero no estoy seguro de cómo proceder desde allí.

Estoy usando CentOS 6.6 Final .

Respuestas:


25

Solo agrega

complete -d cd

en su ~/.bashrc(u otro archivo de configuración bash).


¡funciona! Gracias. Tuve que escribir bashdespués para volver a cargar mi ~/.bashrcarchivo
chiliNUT

Eso es interesante. Este es el comportamiento predeterminado en mi instalación de Debian, pero escribir completeno se muestra -d cdni nada parecido. Aparentemente se ha hecho de alguna otra manera aquí.
Tom Zych

@TomZych Hay un script de finalización de bash popular , es muy probable que su distribución lo haya instalado de forma predeterminada.
jimmij

2
Para volver a leer el ~/.bashrctipo . ~/.bashrc. Esto puede no iniciar un sub-shell.
ctrl-alt-delor

1
@richard One también puede volver a escribir / pegar este comando en el shell interactivo actual.
jimmij

2

Esto debería suceder automáticamente en una instalación típica en muchas distribuciones.
Si no es así, probablemente te falte el bash-completionpaquete:

  • Ubuntu: sudo apt-get install bash-completion
  • Arco: sudo pacman -S bash-completion
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.