Navegue rapidamente de um caminho para outro

3

Eu percebi que frequentemente tenho que fazer algo assim:

Estou em um caminho: /very/long/path/1 e preciso ir para /another/long/path/ para fazer algumas coisas por lá. Então eu tenho que voltar para o meu /very/long/path/1 . Para piorar as coisas, por vezes, outro terceiro caminho está lá e eu mudo constantemente de um para outro.

Isso não é um problema com cd , mas existe uma maneira de armazenar esses caminhos de alguma forma e usá-los?

Estou trabalhando na linha de comando em algum host remoto.

    
por Salvador Dali 15.05.2014 / 02:31

4 respostas

3

cdargs o programa foi projetado expressamente para o propósito de gerenciar marcadores de diretórios visitados com freqüência para facilitar a navegação no shell exatamente como você deseja . Ele vem com bash integração de shell e conclusão de tabulação nos diretórios que você salvou.

sudo apt-get install cdargs
. /usr/share/doc/cdargs/examples/cdargs-bash.sh
cd /very/long/path/1
mark path1
cd /another/long/path/
mark path2
cd /yet/another/third/long/path
mark foo
cv path1
cv foo
cv p<TAB> ## tab-completes to "path1/" or "path2/"

Os marcadores que você cria são salvos por cdargs em seu próprio arquivo de configuração, então eles são automaticamente transferidos de uma sessão de shell para a próxima e ficam disponíveis na próxima vez que você fizer login ou abrir um terminal.

Ele ainda vem com um modo de curses interativo para procurar sua lista completa de diretórios marcados. Basta executar cv ou cdargs sem argumentos e ele mostrará uma lista de caminhos de diretório marcados que você pode selecionar usando as teclas de seta ou vi -style hjkl .

Para ativar o cdargs para o seu ambiente de shell automaticamente, simplesmente digite /usr/share/doc/cdargs/examples/cdargs-bash.sh do seu ~/.bashrc ou solicite que ele seja carregado em cada shell interativo bash . Por exemplo,

cp /usr/share/doc/cdargs/examples/cdargs-bash.sh ~/.bashrc-cdargs
echo '. ~/.bashrc-cdargs' >> ~/.bashrc
    
por Mike Miller 16.05.2014 / 23:42
2

Veja os comandos pushd e popd. Você pode encontrar informações no Google, mas basicamente elas são como um CD com uma memória parecida com uma pilha.

    
por ojblass 15.05.2014 / 04:21
2

Você pode usar cd - para acessar o último diretório visitado. Isso economizará muito tempo.

    
por favadi 15.05.2014 / 05:14
2

Você sempre pode adicionar um alias.

alias big='cd /very/long/directory/goes/here'

Em seguida, basta digitar big

Para um alias mais permanente:

Como faço para criar um alias permanente do Bash?

Como o exemplo de pushd e popd tem mais votos positivos, mas o cara não explicou:)

Basicamente, quando você faz pushd, ele faz uma lista de diretórios que você pode colocar nele. (Se você tem algum histórico de programação, é muito semelhante quando você coloca um item de uma lista, se não eu vou explicar)

Então, se você fizer pushd ~/Music , acabou de adicionar um diretório a uma lista da qual você pode acessar. Você também pode fazer pushd dir para adicionar seu diretório atual (de trabalho) a esta lista. Quando você usa o comando pushd sozinho, ele percorre a lista (na verdade, é tecnicamente stack).

Exemplo:

Então, se você quiser adicionar 3 diretórios. Ficaria assim

user@user: pushd /really/long/dir/1/ < - Entrada do usuário

/really/long/dir/1/ < --- Saída

user@user: pushd /really/long/dir/2/ /really/long/dir/1/ /really/long/dir/2/ user@user: pushd /really/long/dir/3/ /really/long/dir/1/ /really/long/dir/2/ /really/long/dir/3/

Todos serão adicionados dessa forma. Quando você usa pushd , ele irá para o próximo diretório da lista e pressionará o primeiro até o final. Então a lista começaria 1,2,3 e iria 2,3,1 - > 3,1,2 - > 1,2,3.

popd exclui o diretório na frente da lista e o leva para o primeiro diretório da nova lista. Então vamos fazer isso com 4 diretórios (assumindo que o comando popd é usado toda vez)

Exemplo:

(comece com 1,2,3,4, em qualquer diretório)

2,3,4 (Você está no diretório 2)

3,4 (Você está no diretório 3

4 (Você está no diretório 4)

Lista vazia (sem alteração de diretório)

    
por No Time 15.05.2014 / 04:58