2 Navegación y Exploración
La navegación eficiente por el sistema de archivos es fundamental para cualquier usuario de terminal. Esta sección cubre las herramientas más poderosas para moverte, explorar y entender la estructura de tus directorios de forma productiva.
2.1 eza - Listado moderno de archivos
eza es un reemplazo moderno del comando ls tradicional, ofreciendo colores, iconos y mejor formato por defecto.
2.1.1 Instalación y configuración
# Ya está instalado con Homebrew
which eza2.1.2 Uso básico
# Listado básico con iconos y colores
ezaeza muestra colores e iconos por defecto, making it much more readable than traditional ls.
2.1.3 Ejemplos prácticos
2.1.3.1 Listado detallado
# Equivalente a 'ls -la' pero mucho más visual
eza -la
# Con fechas en formato legible
eza -la --time-style=long-iso
# Mostrar tamaños en formato legible (KB, MB, GB)
eza -lah2.1.3.2 Vista en árbol
# Vista de árbol del directorio actual
eza --tree
# Limitar profundidad a 2 niveles
eza --tree --level=2
# Árbol con información detallada
eza --tree -la
# Ignorar directorios específicos
eza --tree --ignore-glob="node_modules|.git"2.1.3.3 Filtrado y ordenamiento
# Mostrar solo directorios
eza -D
# Mostrar solo archivos
eza -f
# Ordenar por tamaño (mayor a menor)
eza -la --sort=size --reverse
# Ordenar por fecha de modificación
eza -la --sort=modified
# Ordenar por extensión
eza -la --sort=extension2.1.3.4 Información de Git
# Mostrar estado de Git para cada archivo
eza -la --git
# Solo archivos con cambios en Git
eza -la --git | grep -E '\s[MAD?]\s'2.1.4 Casos de uso avanzados
2.1.4.1 Análisis de proyectos
# Ver estructura completa de un proyecto con Git info
eza --tree --git --ignore-glob="node_modules|.git|dist|build"
# Ver archivos grandes en el proyecto
eza -la --sort=size --reverse | head -202.1.4.2 Alias útiles
Agrega estos a tu .zshrc o .bashrc:
alias ll='eza -la --git'
alias lt='eza --tree'
alias llt='eza --tree -la'
alias ls='eza'2.2 tree - Estructura visual de directorios
tree genera una representación visual en forma de árbol de la estructura de directorios.
2.2.1 Uso básico
# Árbol básico del directorio actual
tree
# Limitar a 2 niveles de profundidad
tree -L 2
# Mostrar archivos ocultos
tree -a2.2.2 Ejemplos prácticos
2.2.2.1 Control de profundidad y filtros
# Solo directorios (sin archivos)
tree -d
# Límite de 3 niveles, solo directorios
tree -d -L 3
# Ignorar patrones específicos
tree -I 'node_modules|.git|*.pyc'
# Múltiples patrones de exclusión
tree -I 'node_modules|.git|dist|build|coverage'2.2.2.2 Información adicional
# Mostrar tamaños de archivos
tree -s
# Mostrar fechas de modificación
tree -D
# Mostrar permisos
tree -p
# Combinación: tamaños, fechas y permisos
tree -sDp2.2.2.3 Salida formateada
# Solo los nombres de archivos (sin estructura de árbol)
tree -i
# Mostrar rutas completas
tree -f
# Colorear salida según tipo de archivo
tree -C2.2.3 Casos de uso avanzados
2.2.3.1 Documentación de proyectos
# Generar documentación HTML del proyecto
tree -H . -o project-structure.html
# Con título personalizado
tree -H . -T "Mi Proyecto" -o structure.html
# Incluir CSS personalizado
tree -H . -C -o structure.html2.2.3.2 Análisis de directorios
# Contar archivos por tipo
tree | grep -E '\.(js|py|md)$' | wc -l
# Ver directorios más profundos
tree -d | tail -20
# Encontrar directorios vacíos
tree -d --prune2.2.3.3 Scripts de backup
# Crear lista de archivos para backup
tree -if > backup-list.txt
# Solo archivos modificados en últimos 7 días
find . -mtime -7 | tree --fromfile2.3 ranger - Navegador interactivo
ranger es un navegador de archivos en terminal con interfaz visual y vista previa.
2.3.1 Iniciando ranger
# Abrir ranger en directorio actual
ranger
# Abrir en directorio específico
ranger ~/Documents
# Abrir y ejecutar comando al salir
ranger --cmd="cd /tmp"2.3.3 Comandos esenciales
2.3.3.1 Gestión de archivos
# Dentro de ranger:
yy # Copiar archivo/directorio
dd # Cortar archivo/directorio
pp # Pegar
dD # Eliminar permanentemente
:delete # Eliminar con confirmación2.3.3.2 Búsqueda y filtros
# Buscar archivos
/nombre_archivo
# Búsqueda hacia atrás
?nombre
# Filtrar archivos mostrados
zf
# Mostrar archivos ocultos
zh
# Mostrar solo directorios
zd2.3.3.3 Vista previa y configuración
# Alternar vista previa
zv
# Cambiar modo de vista
zP
# Información del archivo
=2.3.4 Personalización
2.3.4.1 Archivo de configuración
Crea ~/.config/ranger/rc.conf:
# Mostrar archivos ocultos por defecto
set show_hidden true
# Vista previa activada
set preview_files true
# Usar colores
set colorscheme default
# Integración con git
set vcs_aware true2.3.4.2 Comandos personalizados
# En rc.conf, agregar comandos personalizados:
map <C-t> shell tmux new-window
map <C-e> shell code %s
map <C-g> shell git status2.3.5 Casos de uso avanzados
2.3.5.1 Integración con otros programas
# Abrir archivo con aplicación específica
r # Menú de aplicaciones
1 # Aplicación por defecto
2 # Editor de texto
3 # Visor de imágenes2.3.5.2 Marcadores y tabs
# Crear marcador
m + letra
# Ir a marcador
' + letra (comilla simple)
# Nuevo tab
Ctrl+n
# Cambiar tab
Tab / Shift+Tab
# Cerrar tab
Ctrl+w2.4 zoxide - Navegación inteligente
zoxide es un reemplazo inteligente para cd que recuerda los directorios que visitas frecuentemente.
2.4.1 Configuración inicial
# Agregar a tu .zshrc
eval "$(zoxide init zsh)"
# Para bash
eval "$(zoxide init bash)"
# Reiniciar shell o ejecutar
source ~/.zshrc2.4.2 Uso básico
# Después de la configuración, 'z' reemplaza a 'cd'
z Documents
z proj # Si has visitado ~/Projects antes
z down # Para ~/Downloads2.4.3 Ejemplos prácticos
2.4.3.2 Gestión de la base de datos
# Ver directorios rastreados con puntuaciones
zoxide query --list
# Ver estadísticas detalladas
zoxide query --stats
# Agregar directorio manualmente
zoxide add /ruta/especial
# Eliminar directorio de la base de datos
zoxide remove /ruta/vieja2.4.4 Casos de uso avanzados
2.4.4.1 Integración con scripts
#!/bin/bash
# Script para navegar a proyecto y activar entorno
PROJECT=$(zoxide query "$1")
if [ -n "$PROJECT" ]; then
cd "$PROJECT"
if [ -f ".venv/bin/activate" ]; then
source .venv/bin/activate
fi
fi2.4.4.2 Aliases personalizados
# En .zshrc
alias zz='zi' # Navegación interactiva
alias zl='zoxide query --list' # Listar directorios
alias zs='zoxide query --stats' # Estadísticas2.5 Combinaciones poderosas
2.5.1 Exploración completa de proyectos
# 1. Navegar al proyecto
z myproject
# 2. Ver estructura general
eza --tree --level=3 --ignore-glob="node_modules|.git"
# 3. Ver archivos modificados recientemente
eza -la --sort=modified | head -10
# 4. Abrir navegador interactivo para explorar
ranger2.5.2 Análisis rápido de directorios
# Pipeline para analizar un directorio desconocido
z unknown-dir && \
tree -L 2 && \
echo "--- Archivos más grandes ---" && \
eza -la --sort=size --reverse | head -5 && \
echo "--- Tipos de archivo ---" && \
find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -nr