Terminal: lembra do diretório de trabalho [duplicado]

8

Eu tenho git repos armazenados em diretórios diferentes, que têm caminhos longos /opt/too/long/path/to/type/every/time/git-repo e é meio difícil lembrar mais de cd para o diretório toda vez que é um chato e tedioso. (Eu sei que o TAB ajuda, mas que também é entediante). Então, minha vida seria muito mais fácil se eu pudesse armazenar o pwd em algum lugar e depois fazer algo como cd thatgitrepo .

    
por Dilip Raj Baral 13.05.2016 / 07:29

8 respostas

15

Crie alguns links simbólicos em seu diretório pessoal:

ln -s /opt/really/long/obnoxiously/long/path/to/some/projectname

Este comando criará um link chamado projectname em seu diretório inicial no qual você pode cd e tudo funcionará perfeitamente.

    
por 13.05.2016 / 07:38
15

z é um "plugin" muito bom para bash ou zsh (está incluído em Oh My Zsh ) que controla os diretórios para os quais você cd e permite alternar rapidamente para diretórios usando partes de seus nomes, com base na frequência você os usa.

Então, depois de um tempo, ele saberá que

z git-repo

deve cd ao diretório git-repo que você usa com mais frequência. Você pode qualificar isso com parte do caminho, por exemplo.

z d git-repo

ou até mesmo

z d git

Descobri que isso é mais útil do que aliases ou mesmo CDPATH porque aprende sozinho e se adapta a meus hábitos de mudança.

    
por 13.05.2016 / 10:08
9

Uma vez dentro do diretório, você faz:

repo='pwd'

e depois você faz

cd $repo

Se você quiser mantê-lo para a próxima vez, faça o seguinte:

echo "export repo='pwd'" >> ~/.profile
    
por 13.05.2016 / 07:37
9
A variável bash shell do CDPATH pode ser uma solução conveniente para você. Um comando como cd foo procura o subdiretório chamado foo dentro dos diretórios listados em CDPATH .

    
por 13.05.2016 / 10:06
7

Apenas para mencionar outra ferramenta útil, existe o pushd builtin. Com

$ pushd dirname

o diretório atual será empurrado na pilha de diretórios (você pode ver a pilha com dirs ) e o diretório atual será alterado para dirname . Posteriormente, você pode voltar para o diretório mais recente (em primeiro lugar na pilha) usando o comando popd builtin.

Isso deve funcionar pelo menos em bash, zsh, csh e tcsh.

Se você quiser apenas mudar para o diretório anterior em que você está, cd - vem para ajudar.

    
por 13.05.2016 / 12:15
5

É assim que eu faria; crie um alias em ~/.bashrc (se estiver usando o Bash):

alias thatgitrepo='cd /opt/a/b/c/d/e/f/g/git-repo'

E use source .bashrc para ter o alias para o shell atual.

    
por 13.05.2016 / 08:01
0

Citando esta resposta por ramesh :

The command you are looking for is pushd and popd.

You could view a practical working example of pushd and popd from here.

mkdir /tmp/dir1
mkdir /tmp/dir2
mkdir /tmp/dir3
mkdir /tmp/dir4

cd /tmp/dir1
pushd .

cd /tmp/dir2
pushd .

cd /tmp/dir3
pushd .

cd /tmp/dir4
pushd .

dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
    
por 13.05.2016 / 11:54
0

Para coisas de codificação eu sempre usei apenas variáveis de ambiente para armazenar diretórios de código comumente usados.

Em um arquivo bash que é executado, faça:

export PROJECTNAMEDIR=/opt/too/long/path/to/type/every/time/git-repo

Depois, você pode fazer coisas como cd $PROJECTNAMEDIR ou git checkout $PROJECTNAMEDIR e também as variáveis serão preenchidas automaticamente com o bash.

    
por 14.05.2016 / 00:09

Tags