acesso rápido à pasta no Linux (semelhante ao Launchy)

1

O Launchy é um ótimo software, eu o uso no Windows principalmente para acessar rapidamente pastas. Adoro a sua indexação automática em segundo plano e quase nunca navego manualmente pelas pastas nos dias de hoje, e resolve-me muito tempo.

No Linux (Ubuntu 9.10), eu normalmente "vivo" no terminal, no entanto. Portanto, o Launchy no Linux (ou o Gnome Do, ou suas outras substituições) não é o que eu preciso - pois ele abre o gerenciador de arquivos, e eu não preciso do gerenciador de arquivos.

O que eu preciso é de algo que indexe minhas pastas e me deixe cd rapidamente neles no terminal. Por exemplo:

mycd python_c

cd para:

~/dev/scripts/python_code

Espero que minha intenção seja entendida: -)

Você conhece essas ferramentas?

    
por Eli Bendersky 02.04.2010 / 15:50

3 respostas

0

Só quero anotar que, depois de olhar em volta, encontrei z - ele aprende os diretórios nos quais você inseriu o CD e, em seguida, permite que você pule facilmente para eles.

Há também o autojump , mas z parece estar mais perto do que eu preciso.

    
por 03.04.2010 / 07:55
1

Bash tem a variável CDPATH .

$ CDPATH="$CDPATH:~/dev/scripts/:/some/other/one/too"
$ cd python_code
/home/username/dev/scripts/python_code
$ pwd
/home/username/dev/scripts/python_code

Você pode criar scripts para a manutenção do valor da seguinte forma:

No seu ~/.bashrc :

cd() {
    while read -r dir
    do
        if [[ ! $CDPATH =~ $dir ]]
        then
            CDPATH="${CDPATH}:${dir}"
        fi
    done < ~/.cdpath
    builtin cd "$@"
}
cd .    # update CDPATH
export CDPATH

Em um arquivo chamado /usr/local/bin/mkcdpath :

#!/bin/bash
# update the stored CDPATH directory list
# run from cron, can be run manually
# requires Bash >= 3.2
cdp=$(<~/.cdpath)
while read -r dir
do
    if [[ ! $cdp =~ $dir ]]
    then
        cdp="${cdp}:${dir}"
    fi
done < <(find /anchored_at_root -maxdepth 1 some_find_args  -type d)
echo "$cdp" > ~/.cdpath

Execute periodicamente usando cron .

Agora, a qualquer momento que você usar cd , ele atualizará o CDPATH do shell atual e executará a alteração do diretório de acordo com ele (além de fazer% normalcd s, que são tentadas primeiro). Você poderia alterar o nome da função (e remover o comando cd ) para torná-lo apenas uma função de atualização e usar o comando cd normal - ele simplesmente não atualizaria o valor automaticamente.

    
por 02.04.2010 / 18:50
0

Você pode estar interessado em algum recurso avançado de zsh . Adiciona alguns atalhos extras a cd .

    
por 02.04.2010 / 17:45