Un comando cd más inteligente que aprende tus directorios más usados y te permite saltar a ellos con solo unas pocas teclas. Utiliza un algoritmo de “frecencia” que combina frecuencia y recencia de visitas.
| Plataforma | Comando |
|---|
| macOS (Homebrew) | brew install zoxide |
| Ubuntu/Debian | sudo apt install zoxide |
| Arch Linux | sudo pacman -S zoxide |
| Fedora/RHEL | sudo dnf install zoxide |
| Windows (Winget) | winget install ajeetdsouza.zoxide |
| Windows (Scoop) | scoop install zoxide |
| Windows (Chocolatey) | choco install zoxide |
| Cargo (Todas las plataformas) | cargo install zoxide --locked |
| Conda | conda install -c conda-forge zoxide |
| Nix | nix-env -iA nixpkgs.zoxide |
| Install script | curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh |
Agregar la línea apropiada a tu archivo de configuración de shell:
| Shell | Archivo de Configuración | Comando a Agregar |
|---|
| Bash | ~/.bashrc | eval "$(zoxide init bash)" |
| Zsh | ~/.zshrc | eval "$(zoxide init zsh)" |
| Fish | ~/.config/fish/config.fish | zoxide init fish | source |
| PowerShell | Profile | Invoke-Expression (& { (zoxide init powershell | Out-String) }) |
| Elvish | ~/.elvish/rc.elv | eval (zoxide init elvish | slurp) |
| Nushell | env.nu | zoxide init nushell | save -f ~/.zoxide.nu |
| Xonsh | ~/.xonshrc | execx($(zoxide init xonsh)) |
| Comando | Descripción |
|---|
z foo | Saltar al directorio de mayor clasificación que coincida con “foo” |
z foo bar | Saltar al directorio que coincida con “foo” y “bar” |
z ~/projects | Saltar a ruta exacta (funciona como cd regular) |
z .. | Subir un directorio |
z - | Regresar al directorio anterior |
zi foo | Selección interactiva con fzf (cuando hay múltiples coincidencias) |
zi | Selección interactiva de todos los directorios rastreados |
zoxide coincide rutas de directorio por palabras clave. No necesitas escribir la ruta completa:
# If you frequently visit /home/user/projects/my-app
z my-app # Jumps directly there
z proj app # Also works (matches both words in path)
z app # Works if it's your most frequent "app" directory
Puntuación: Los directorios obtienen puntos cuando son visitados. Las visitas recientes puntúan más alto. Los directorios no usados decaen con el tiempo.
| Comando | Descripción |
|---|
zoxide add /path/to/dir | Agregar manualmente un directorio a la base de datos |
zoxide remove /path/to/dir | Eliminar un directorio de la base de datos |
zoxide edit | Abrir base de datos en $EDITOR para edición manual |
zoxide query foo | Mostrar la mejor coincidencia para “foo” (sin saltar) |
zoxide query -l | Listar todos los directorios en la base de datos, ordenados por puntuación |
zoxide query -l foo | Listar todas las coincidencias para “foo” con puntuaciones |
zoxide query -ls foo | Listar coincidencias con puntuaciones, ordenadas por puntuación |
zoxide query -i foo | Modo de selección interactiva |
¿Migrando desde otro saltador de directorios? Importa tu base de datos:
| Comando | Descripción |
|---|
zoxide import --from=autojump /path/to/db | Importar desde autojump |
zoxide import --from=z /path/to/db | Importar desde z/z.sh |
zoxide import --from=fasd /path/to/db | Importar desde fasd |
Ubicaciones predeterminadas de base de datos para importar:
- autojump:
~/.local/share/autojump/autojump.txt
- z:
~/.z
- fasd:
~/.fasd
| Variable | Predeterminado | Descripción |
|---|
_ZO_DATA_DIR | Específico de plataforma | Directorio para almacenar la base de datos |
_ZO_ECHO | 0 | Imprimir directorio coincidente antes de navegar (1 para habilitar) |
_ZO_EXCLUDE_DIRS | Ninguno | Directorios a excluir (rutas separadas por dos puntos) |
_ZO_FZF_OPTS | Ninguno | Opciones personalizadas pasadas a fzf en modo interactivo |
_ZO_MAXAGE | 10000 | Número máximo de entradas en la base de datos |
_ZO_RESOLVE_SYMLINKS | 0 | Resolver enlaces simbólicos antes de almacenar rutas (1 para habilitar) |
| Opción | Descripción |
|---|
--cmd j | Cambiar nombre de comando de z a j (crea j y ji) |
--hook prompt | Actualizar puntuaciones en cada prompt (predeterminado) |
--hook pwd | Actualizar puntuaciones solo cuando cambia el directorio |
--hook none | Nunca actualizar puntuaciones automáticamente |
--no-cmd | No crear alias z y zi (usar __zoxide_z directamente) |
# Example: use 'j' instead of 'z', update on directory change only
eval "$(zoxide init bash --cmd j --hook pwd)"
# Exclude home directory and tmp from tracking
export _ZO_EXCLUDE_DIRS="$HOME:/tmp:/private/tmp"
# Use custom fzf preview
export _ZO_FZF_OPTS="--preview 'eza -la --icons {2..}' --preview-window=right:40%"
# Jump to a project directory by partial name
z myproject
# Disambiguate with multiple keywords
z work api # matches ~/work/projects/api-server
# Interactive mode when you're not sure
zi deploy # opens fzf with all matching directories
# Check what zoxide thinks is the best match
zoxide query deploy
# See all tracked directories and their scores
zoxide query -ls
# Clean up deleted directories from the database
zoxide query -l | while read -r line; do
dir=$(echo "$line" | awk '{print $2}')
[ ! -d "$dir" ] && zoxide remove "$dir"
done
Cuando usas zi, zoxide usa automáticamente fzf para selección interactiva. Asegúrate de que fzf esté instalado para que esto funcione.
zoxide proporciona completado con tabulador. Después de la integración con shell, presionar Tab después de z sugerirá directorios coincidentes.
| Característica | cd | zoxide (z) |
|---|
| Ir a ruta exacta | cd /full/path | z /full/path |
| Coincidencia parcial | No | Sí (z proj) |
| Clasificación por frecencia | No | Sí |
| Selección interactiva | No | Sí (zi) |
| Directorio anterior | cd - | z - |
| Comportamiento de aprendizaje | No | Aprende del uso |
| Importación de base de datos | N/A | autojump, z, fasd |
| Problema | Solución |
|---|
Comando z no encontrado | Asegurar que la línea de integración de shell esté en tu configuración de shell y reiniciar shell |
| No se encontraron coincidencias | Visitar directorios con cd primero — zoxide aprende con el tiempo |
| Directorio incorrecto coincidido | Usar palabras clave más específicas: z work api en lugar de z api |
| Base de datos demasiado grande | Reducir _ZO_MAXAGE o ejecutar zoxide edit para limpiar |