Melhor maneira de obter acesso rápido ao diretório freqüentemente usado no terminal linux

3

Tendo alguns problemas no Google, porque não sei qual é o termo de pesquisa. Script de shell ou recurso de terminal. Qual é a melhor maneira de simplificar o acesso aos diretórios usados com freqüência. Normalmente, quando eu inicio um terminal, o padrão é meu diretório inicial, mas às vezes eu abro para abrir várias janelas de terminal, o problema é que eu estou digitando o cd /.../directory em cada um várias vezes e eu preciso de uma maneira de não ter para fazer isso. Qual é a melhor maneira ou apenas fornecer os termos de pesquisa que eu poderia usar para ler sobre isso online. Obrigado

    
por Randnum 10.11.2011 / 18:01

9 respostas

7

Crie um link simbólico no seu diretório pessoal:

$ ln -s path/to/a/really/deeply/nested/director/my-project ~/my-project

$ cd ~/my-project
    
por 10.11.2011 / 18:03
4

Adicione uma variável ao seu .bashrc:

MYPROJECT=path/to/a/really/deeply/nested/director/my-project

para usar:

$ cd $MYPROJECT
    
por 10.11.2011 / 18:05
4

Defina a variável CDPATH: ela contém diretórios adicionais a serem pesquisados quando você executa cd .

    
por 10.11.2011 / 22:46
4

Você também pode aproveitar a variável CDPATH .

E você pode definir um bash function no seu $HOME/.bashrc like

 # in file ~/.bashrc
 function work() {
    cd $HOME/path/to/a/really/deeply/nested/director/my-project
 }

E festivais recentes ou até mesmo zsh podem lhe permitir coisas como

 cd **/my-project

Supondo que você tenha apenas um diretório my-project/ profundamente aninhado em toda a sua hierarquia de árvore. O ** está fazendo o equivalente a find , então pode ser lento.

    
por 10.11.2011 / 23:00
2

Você também pode tentar o autojump .

É como o comando cd , mas com a capacidade de aprender. Ele mantém um banco de dados de diretórios que você visita e atribui peso a cada entrada.

Posteriormente, você pode usar j foo para ir para um diretório que contenha foo em seu nome. Se mais de alguns diretórios tiverem foo, ele mostrará uma lista de correspondências de onde você pode selecionar o diretório desejado.

    
por 07.01.2014 / 19:55
1

Você pode usar marcadores para o shell, por exemplo bookmarks.sh .

    
por 10.11.2011 / 18:22
1

O autor do CDPATH recomenda exportar o CDPATH para o ambiente. Por favor, tenha em mente que há uma grande chance de que isso sutilmente quebre os scripts de shell que esperam que os diretórios estejam em um local específico. Uma solução é colocar o CDPATH em ~ / .bashrc e não exportá-lo. Seu ~ / .bashrc ficaria assim:

CDPATH=/var/:/etc/

Observe que os shell scripts originados continuarão captando o CDPATH nesse caso. O autojump é certamente uma alternativa muito mais segura e mais conveniente de usar do que o CDPATH.

    
por 24.09.2014 / 10:57
0

Adicione um apelido no seu .bashrc

alias myproject="cd path/to/a/really/deeply/nested/director/my-project"

para usar:

$ myproject
    
por 10.11.2011 / 18:07
0

anc é projetado exatamente para este caso de uso.

link

Aqui está um trecho do README.md:

# make the current directory the default anchor:
$ anc s

# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc

# go back to /usr/local :
$ anc b

# add another anchor:
$ anc a $HOME/test

# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test

# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1

# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first

# use text matching to jump to $HOME/projects/first
$ anc pro fir

# use text matching to jump to $HOME/documents/first
$ anc doc fir

# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1

# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1

# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*

# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]

Divulgação completa: sou o autor do anc.

    
por 06.06.2016 / 10:08