Alias fcd: Navegación rápida

2025

Si ya tengo instalado fzf, el siguiente paso es usarlo para moverme entre directorios. Escribir rutas largas a mano es lento y me lleva a cometer errores.

Para evitar eso, uso una función en Bash llamada fcd

¿Qué hace?

Escribo fcd en la terminal y aparece una lista interactiva de carpetas. Empiezo a escribir, fzf filtra al instante y, al presionar Enter, cambio directamente al directorio seleccionado.

El código

Agrego esta función a mi .bashrc Usa fd si está disponible y find como respaldo.

# fcd - Cambiar de directorio usando fzf
# Usa fd si está disponible, sino find

fcd() {
  local dir

  if command -v fd >/dev/null; then
    # fd: más rápido, incluye ocultos (-H), excluye .git y node_modules
    dir=$(fd -H -E .git -E node_modules -t d . | fzf)
  else
    # Fallback a find tradicional
    dir=$(find . -maxdepth 5 -type d \
      -not -path '*/.git/*' \
      -not -path '*/node_modules/*' | fzf)
  fi

  # Solo cambio de directorio si seleccioné algo
  if [ -n "$dir" ]; then
    cd "$dir"
  fi
}

Nota: Con fd puedo ver carpetas ocultas útiles como .config o .local pero sigo ignorando ruido como .git o node_modules Si fd no está instalado, el script sigue funcionando con find

Es un cambio pequeño, pero elimina fricción. Menos escribir rutas, menos autocompletado, más flujo.


Nota: Este artículo forma parte de la serie Mi terminal, paso a paso, donde documento los alias y funciones que realmente uso en mi día a día.