Eu tive isso em algum lugar há 20 anos ou sonhei com isso.
Basicamente:
Se se blobblob
eu receber
blobblob: command not found
Justo.
Gostaria que, quando meu shell obtiver esses erros - comando não encontrado -, verifique se existe um diretório com esse nome ('blobblob') e se ele ocorrer cd
nesse diretório.
Tenho certeza de que existem algumas razões para não fazer isso ou fazê-lo com cautela.
Só acho que seria bem legal e gostaria de tentar descobrir como está em algum lugar (como aqui!).
Eu não tenho idéia de como fazer a programação do tipo de shell que isso pode implicar.
fonte
shopt -s autocd
na linha de comando e funcionou. Agora posso começar a digitar os nomes dos diretórios e usar o preenchimento automático e pressionar return e os shellcd
no diretório. Tão legal !cd
não é tão difícil de digitar, e a maioria dos mecanismos de preenchimento de guias é mais inteligente quando você fornece mais contexto.autocd
shopt foi adicionado na versão 4. do bash. Portanto, ele não está disponível no macOS (que ainda possui a versão 3.xx do bash), a menos que um bash alternativo mais recente esteja instalado (por exemplo, via homebrew).O utilitário autojump fornece um mecanismo semelhante a uma lista de diretórios Mais Pesadamente Usada. No entanto, exige o tédio adicional da digitação,
j
Spacemas isso é compensado pela adivinhação correta com mais frequência.Este é o DWIM mais próximo que eu usei até agora.
fonte
Certa vez, criei um script útil para um objetivo semelhante, com uma função fcd para find-n-cd.
Você digita
fcd foo
e 3 coisas podem acontecer:"no such directory " $1
É semelhante, pois não precisa digitar o caminho inteiro, mas você chamou a função explicitamente.
Você tem
source
a função (source fcd.sh
|. fcd.sh
) e não pode chamá-la como script, porquecd
só aconteceria no contexto do script e, após o término, você voltaria ao seu diretório inicial imediatamente.Como funciona
locate
, é bastante rápido em encontrar diretórios (mas nem sempre atualizados).Ele não trata espaços em branco nos nomes de diretório normalmente. Se você tiver uma solução elegante para o problema, eu ficaria feliz.
fonte
cd
automaticamente, sem digitar nenhum comando. Esta resposta é mais adequada para a navegação rápida no diretório no terminal ./etc/bash.bashrc
há, no ubuntu, umfunction command_not_found_handle
que olha como se poderia ser modificado.Isso também funciona,
.. desde que você configure um script cdf.sh personalizado (abaixo), fornecido no shell. Para um diretório como parâmetro, esse script chega apenas ao diretório pai do diretório encontrado. Adicione a seguinte linha no seu .bashrc ou .zshrc, o que for ..
E adicione esse código no arquivo ~ / bin / cdf.sh que você precisa criar do zero.
fonte
Coloque isso no seu
~/.bashrc
fonte