Zoxide e fzf no bash para incrementar o uso do Terminal

Publicado por Sidnei Serra em 31/03/2026

[ Hits: 88 ]

Blog: https://www.youtube.com/@alquimistaTI

 


Zoxide e fzf no bash para incrementar o uso do Terminal



zoxide e o fzf são programas externos que são usados junto do shell (terminal) para acelerar a entrada de pastas e listar possibilidades de entradas disponíveis no histórico. Combinando os dois é possível achar comandos e "entradas cd" (de pastas) para deixar o uso do terminal mais agradável. O problema é que implementar isso acaba deixando o usuário preguiçoso mas vamos lá assim mesmo. Isso pode ser feito também no zsh mas vou mostrar primeiro como fazer no bash.

No Debian e agregados:

sudo apt install fzf zoxide

Abra o arquivo ~/.bashrc:

nano ~/.bashrc

Cole dentro, lá no final do arquivo:

eval "$(zoxide init bash)"

Salve e feche o arquivo. Recarregue o bash:

source ~/.bashrc

Agora todas as pastas em que você entrar no terminal usando bash serão guardadas num banco de dados e dota o seu terminal de um "acelerador". Digamos que você já tenha entrado na pasta .config; basta você digitar sem as aspas "z .config" (nem precisa ser o .config completo, .conf já serve já que é pasta e não arquivo) e o prompt vai aparecer o .config mais novo que você entrou. Se digitar zi config  você vai habilitar o modo de procura caso haja mais de uma entrada disponível:
Linux: Usando o zoxide e fzf no bash do Terminal
Basta então escolher na listagem qual o que você quer usando as setas de direção. E o interessante é que você não precisa digitar o nome da pasta completo, basta digitar "z pasta ou parte do nome" e o zoxide vai direto na última entrada. A única necessidade é que você já tenha entrado na pasta individualmente via cd anteriormente. E, na listagem, ainda mostra as eventuais subpastas presentes nas entradas como ilustra a imagem acima.

Veja os exemplos:
  • z share = Vai entrar na pasta mas recente com a entrada share, por exemplo, /usr/local/share;
  • zi share = vai listar as entradas do histórico do bash que possuem "share" e pode ser escolhida a entrada com as setas de direção;
  • z local = Mesmo que a pasta exista (por exemplo, /usr/local) se você não tiver entrado nela anteriormente via cd (cd /usr/local) não vai achar nada. O zoxide não completa caminhos sozinho e sim se baseia no histórico do shell;
  • zi con = Vai listar as pastas já visitadas que tenham "con", como no exemplo abaixo.
Linux: Usando o zoxide e fzf no bash do Terminal
Lembrando, a pasta TEM que estar no histórico. Se você tiver entrado na /usr/local ou /usr/local/share (atenção ao negrito de ambas) o comando z local ou z share vai achar as entradas MAS NÃO VAI entrar em z usr pois você não entrou nenhuma vez na pasta /usr individualmente.

Depois de instalado o programa precisa "aprender" as pastas que você entra pois ele "linka" ao ~/.bash_history. Para saber o que o zoxide já "aprendeu", abra o terminal e digite:

zoxide query -l

Devem aparecer algumas entradas de comandos de pastas que você já tenha feito. Se estiver em branco é necessário "ensinar" para já "pegar" o que você já tem. Para acelerar o aprendizado, no terminal:

cat ~/.bash_history \
| sed 's/^: [0-9]*:[0-9]*;//' \
| grep -E '^cd ' \
| sed 's/^cd //' \
| while read -r dir; do
    dir="${dir/#\~/$HOME}"
    [ -d "$dir" ] && zoxide add "$dir"
done

Pronto, o zoxide já está "esperto" para listar o que está no seu histórico. Se precisar apagar o banco de dados:

rm -rf ~/.local/share/zoxide/db.zo

e refaça o penúltimo comando mostrado aqui para "ensinar" o seu histórico de pastas ao zoxide.

Só pra deixar claro, o "z" é o substituto do "cd", é como um alias para o comando "cd"; o "z" mais o resto faz o zoxide saber que você está querendo entrar em pastas e esse "z" é o zoxide que determina; poderia ser configurado o j, p ou qualquer outra letra mas vamos ficar no z mesmo.

E lembrando:
  • z pasta ou nome parcial: entra na mais recente;
  • zi pasta ou nome parcial: mostra as pastas acessadas numa lista e que pode ser escolhida a entrada desejada via setas do teclado.

Outras dicas deste autor

Marcando e desmarcando pacotes para atualização, instalação e remoção no Debian e agregados

A compatibilidade do LibreOffice com o Microsoft Office

Instalando fontes via script no Nautilus Scripts no Gnome do Debian 13

Ativando o modo Quake no XFCE4-Terminal

Configurando o Conky para iniciar corretamente no sistema

Leitura recomendada

Boot no openSUSE Tumbleweed demorando demais: erro "A start job is running for Wait for chrony to synchronize system clock" [Resolvido]

Scanner Epson Stylus TX200 no Debian/Ubuntu

Ponto do teclado numérico no X

Limitando taxa de transferência do Slackpkg

Configurar repositório APT local no Debian sem a necessidade de configurar o Apache

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts