Sou relativamente novato no Linux: trabalhei com o shell bash por um bom tempo por meio de uma instalação do Ubuntu no WSL2 em uma máquina Windows 11 e recentemente tomei a iniciativa de mudar para o Linux 100%. Minha pergunta é sobre como alterar diretórios (especificamente navegar até um diretório) usando o terminal e usando o recurso de preenchimento automático de guias.
Anteriormente, quando eu estava navegando no Ubuntu, eu conseguia digitar cd ..
na linha de comando e pressionar tab que completaria o comando para ser cd ../
. Eu poderia jurar que quando criei minha nova instalação (Kali Linux) consegui fazer a mesma coisa. Mas agora, quando tento fazer isso (digite cd ..
e pressione tab para obter o preenchimento automático e alterá-lo para cd ../
), é isso que vejo:
Para referência, aqui está a saída do neofetch no meu sistema:
OS: Kali GNU/Linux Rolling x86_64
Host: NH50_70RA
Kernel: 6.8.11-amd64
Uptime: 1 day, 1 hour, 16 mins
Packages: 3900 (dpkg)
Shell: zsh 5.9
Resolution: 1080x1920, 1920x1080
DE: Plasma 5.27.10
WM: KWin
Theme: [Plasma], Breeze [GTK2/3]
Icons: [Plasma], Vivid-Dark-Icons [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i7-9750H (12) @ 4.500GHz
GPU: Intel CoffeeLake-H GT2 [UHD Graphics 630]
GPU: NVIDIA GeForce GTX 1650 Mobile / Max-Q
Memory: 6228MiB / 31813MiB
Sinto que o comportamento diferente se deve ao uso do bash no Ubuntu e do zsh na minha configuração atual. Encontrei esta documentação sobre diferentes opções de configuração dentro do .zshrc e examinei-a, mas não consegui encontrar nada que se destacasse no que eu poderia fazer para obter o comportamento desejado. Acho que isso se deve ao fato de eu não ter entendido totalmente a documentação, e não de a solução não estar lá.
Desculpe antecipadamente se não postei as informações corretas necessárias ou se não postei o suficiente para solucionar isso de maneira eficaz. Esta é a primeira vez que posto uma pergunta sobre Linux (bem, na verdade a segunda. Postei esta pergunta no Superuser StackExchange , mas não recebi nenhum insight lá, então pensei em postar aqui).
Se alguém me ajudar a descobrir qual é a melhor solução para obter esse comportamento desejado, eu agradeceria muito. Idealmente, eu gostaria de poder digitar cd ..
no prompt de comando e pressionar tab
para que ele seja preenchido automaticamente cd ../
, então, se eu digitar imediatamente ..
e pressionar tab
novamente, ele será preenchido automaticamente para ../
resultar cd ../../
no prompt de comando e assim por diante, o que em este exemplo, se eu pressionasse, enter
levaria dois diretórios do diretório atual com o único comando de cd ../../
ter sido formado e executado.
Já vi respostas onde outros criaram algo como uma função a ser armazenada no arquivo .zshrc
(ou .bashrc
para bash) que poderia ser chamada para navegar por uma certa quantidade de diretórios de uma só vez, passando um número para a função quando chamada, ou seja: a função tem um nome semelhante cdu
a Change Directory Up e entrar cdu 2
no prompt de comando e pressionar enter
navegaria automaticamente para cima dois diretórios do diretório atual. Esta é uma maneira inteligente de realizar a mesma coisa, mas eu realmente gostaria de poder "encadear" manualmente quantas instâncias pressionando ../
e ..
imediatamente tab
depois para ver dinamicamente o comando crescer até que eu pressione enter
para executar o comando e navegue até tantos diretórios. Eu provavelmente poderia criar uma função própria que me permitisse fazer o que quero, mas sinto que deve haver uma maneira mais simples, como uma configuração que preciso configurar da maneira certa para que isso aconteça.
Desde já, obrigado!