Existe uma maneira de ir diretamente para qualquer diretório de qualquer outro diretório?

14

Existe uma maneira de ir diretamente para qualquer diretório de qualquer outro diretório? Por exemplo, digamos que estou na raiz e queria ir diretamente para o currentProject sem fazer :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

Existe uma maneira de fazer isso?

    
por lampShade 22.05.2011 / 23:27

7 respostas

21

Você pode usar algo como autojump . O Autojump permite que você pule rapidamente para diretórios frequentemente visitados com o comando j .

Por exemplo, depois de ter cd no diretório currentProject algumas vezes, você pode pular para ele assim:

j currentProject

Você pode até mesmo usar apenas parte do nome do diretório. Então você poderia fazer:

j current

Para cd em currentProject .

    
por 22.05.2011 / 23:29
8

Você também pode adicionar alguns diretórios comuns ao seu $ CDPATH

export CDPATH=$HOME

Isso, por exemplo, permitirá que você use cd em qualquer diretório da sua pasta pessoal a partir de qualquer lugar do sistema.

mais

    
por 23.05.2011 / 00:03
7

Isso não responde à sua pergunta diretamente, mas se eu estou inferindo corretamente que você vai estar pulando muito entre diretórios, você pode usar um multiplexador de terminal como GNU Screen para manter os diferentes diretórios abertos em diferentes janelas e simplesmente alternar entre eles conforme necessário. Eu pessoalmente uso o Byobu , que adiciona algumas funcionalidades no topo da tela.

    
por 22.05.2011 / 23:43
5

Você pode definir um alias no seu perfil bash. Basicamente, isso permite que você abrevie um comando com uma palavra. Você pode definir currentProject realmente apontar para / dropbox / dev / currentProject

    
por 22.05.2011 / 23:30
4

Você pode criar links simbólicos em seu diretório pessoal para onde deseja ir.

ln -s /dropbox/dev/currentProject ~/currentProject

Dessa forma, você ainda está usando o cd, mas não precisa se lembrar do caminho completo. Apenas use:

cd ~/currentProject

Quando você parar de usar o link, basta excluí-lo.

rm ~/currentProject
    
por 22.05.2011 / 23:48
0

Como Wuffers mencionado acima, o autojump pode fazer isso para você. Ele armazena um banco de dados de diretórios visitados anteriormente e permite usar um comando como j <a few letters in the directory path> para mover para esse diretório. Existe um comando adicional para o autojump chamado jc que deve atender aos seus requisitos. jc permite saltar para um subdiretório visitado anteriormente do diretório de trabalho atual. Portanto, você só precisa visitar o diretório uma vez para que isso funcione até que você limpe o banco de dados do autojump. Além disso, você também pode adicioná-lo diretamente com autojump --add DIR (talvez criando a lista de adição a partir de uma listagem de árvore de diretório, se necessário).

    
por 24.04.2013 / 14:16
0

No bash e * csh, há os comandos incorporados 'pushd' e 'popd' que permitem que você envie diretórios para uma pilha Last In First Out (com pushd [directory] ) e, em seguida, mude rapidamente para o diretório superior no pilha usando 'popd'. Então, dependendo de como você carregou a pilha, você pode navegar rapidamente entre diretórios adequadamente para que isso funcione para você.

    
por 24.04.2013 / 20:52

Tags