Existe algo como o histórico de pesquisa reversa do bash (Ctrl-r), mas apenas para diretórios?
Eu tenho algumas hierarquias profundas de pastas nas quais quero pular, então gostaria de usar algo como histórico de pesquisa reversa, mas ele apenas procura nomes de pastas e me fornece caminhos absolutos.
Essencialmente, daria resultados semelhantes ao uso, !?
mas apenas comandos correspondentes, de cd na frente, você pode percorrer os resultados e os caminhos completos.
Até agora, a melhor solução que encontrei é o bashmarks .
Respostas:
Dê uma olhada no autojump :
fonte
Há sim
esse é o comando "cd [espaço] [hífen]", que vai para o diretório em que você estava antes, essencialmente um "histórico de profundidade 1". "Cd -" repetido alterna entre dois diretórios.
Citando a página do manual:
Infelizmente, não conheço um histórico de diretórios interno real.
fonte
pushd dir
popd
par que pode armazenar sua pilha de diretórios do histórico. Isso é realmente útil em scripts que operam em pastas diferentes.pushd
epopd
, e também já é mencionado aqui.O bash possui pushd / popd / dirs. Eu tenho isso no meu .bashrc para enviar automaticamente os diretórios para a pilha do bash.
Pop-los usando
popd
e exibir a pilha usandodirs
fonte
Eu tive uma boa experiência com o z-jump . Permite a conclusão, embora apenas para o destino final, não percorrendo um caminho. No entanto, ele mostra o caminho completo após a conclusão da guia.
fonte
Apenas para enfatizar minha própria experiência, escrevi um script simples para atender a esse requisito há algum tempo; ele substitui o comando cd incorporado por uma função simples que anexa o novo local do diretório a um arquivo de histórico; um script python é usado para forneça uma interface bash que atualize dinamicamente uma lista ordenada de diretórios conforme você digita os termos de pesquisa, um pouco como a pesquisa de comando reverso do bash.
Está disponível no git-hub para aqueles que são curiosos.
fonte
Gostaria de recomendar o meu
ltcd
para uma navegação rápida no histórico de diretórios:https://github.com/dczhu/ltcd
Ele fornece os seguintes recursos para facilitar a vida:
fonte
Eu criei um script que tem funcionalidade semelhante ao comando oh-my-zsh
dirs -v
que funciona no bash. Se você já usou o oh-my-zsh , deve ter notado que o histórico de diretórios fornecido pelo comandodirs -v
será redefinido toda vez que você sair do terminal. No entanto, isso não acontecerá se você usar esse script .A funcionalidade:
Mostra a lista dos 10 diretórios usados mais recentes com
d
.Vá para qualquer diretório da lista digitando o número do diretório na lista. Você precisa usar 0 em vez de 10 para pular para o 10º diretório.
Um caminho de diretório será colocado no topo da lista sempre que você usar
v
( vim ) para editar arquivos ouo
( xdg-open ) para abrir um arquivo desse diretório. Ou, se quiser, sempre que você visitar um diretório.Você pode vê-lo em ação aqui .
fonte
Bem, você pode adicionar esse trecho de código ao seu
~/.bashrc
, o quefornece um comando cd personalizado
e fornece um comando de pesquisa de histórico de cd.
Obviamente, o comando cdhist que forneci é muito básico, e não o que você queria; mas é concebível usar instruções de caso ou expansão de parâmetro para obter algo semelhante ao que você deseja.
Você pode até adicionar alguma função "Conclusão programável", que pode ser usada para adicionar o
cd /path/to/mydir
comando completo com base em uma sub-string exclusiva de/path/to/unique/mydir
, embora esse método ainda exija que você digitecd unique/mydir<tab>
.fonte
dirs
comando do bash, que faz essencialmente a mesma coisa quemy_dirs
, mas em uma linha.alias cd=pushd
que seria a forma mais elegante.Você pode construir seu próprio
cd
comando compushd
,popd
,dirs
comandos internos.Uso
cd --
(lista histórico atual)cd -num
(vá para o diretório num)cd -
(vá para o diretório anterior)fonte
Eu montei essa ferramenta, que combina soluções anteriores para armazenar um histórico abrangente de CLI global com uma ferramenta de grepping interativa chamada percol (mapeada para C ^ R). Eu o uso para recuperar comandos por onde eles foram executados ou para encontrar um diretório por um comando. Ainda está bom na primeira máquina que comecei a usá-la, agora com um histórico de CLI com mais de 2 anos.
A ferramenta grep funciona no caminho e no comando, mas ainda pode ser útil para você. Veja também 'dirs -v' no zsh
https://github.com/gawells/ariadne
fonte
cd share/man
só funciona se eu já estiver em / usr.