comando que funciona como o símbolo ~ (til) para representar algum diretório

5

cd ~/scripts . Isso vai entrar no diretório de scripts em minha casa. Similar a isso, eu quero algum tipo de "alias" de configuração, o que me permitirá para entrar em algum outro diretório para que, cd xxx/mywork - > entrará no diretório "mywork" / home / work / software. Eu quero o comando para definir xxx para /home/work/software .

    
por vaidhyanathan 14.05.2015 / 20:27

5 respostas

3

Eu não sei qual shell você está usando, mas o zsh tem suporte embutido para isso. Chama-se diretórios nomeados .

Para configurar isso, adicione um código como o seguinte a .zshrc:

mywork=/home/work/software  #set variable
: ~mywork    #Reference variable with a tilde in a no-op statement

Então você pode usá-lo na linha de comando assim:

$ cd ~mywork

Ou isto:

$ cd ~mywork/sub/directories

A explicação completa de como / por que a sintaxe da configuração funciona pode ser encontrada aqui: diretórios nomeados .

    
por 14.05.2015 / 20:41
2

Parece que definir CDPATH pode aproximá-lo daquilo que você é perguntando:

cd

    cd [-L|[-P [-e]] [-@] [directory]

    Change the  current working directory to  directory.  [...] If
    the shell variable CDPATH exists, it is used as a search path:
    each directory name in CDPATH  is searched for directory, with
    alternative  directory names  in CDPATH  separated by  a colon
    (‘:’).  If directory begins with a slash, CDPATH is not used.

Dessa forma, se você tiver /home/work no seu CDPATH , então cd software colocará você em /home/work/software .

Se você precisar de algo mais próximo da pergunta específica, talvez definindo um diretório com links simbólicos e colocando esse diretório seria ainda melhor. Por exemplo, mkdir ~/.links , depois CDPATH=~/.links , e, em seguida, dentro de ~/.links , crie um link simbólico mywork para %código%. Então /home/work/software te levará até lá.

    
por 14.05.2015 / 20:32
0

Isso não é exatamente o que você está pedindo, mas você pode querer dar uma olhada em Z (funciona em bash e zsh ) que rastreia seus diretórios mais usados, com base na 'frecência' e permite que você pule.

No seu exemplo, seria algo como:

z software

e provavelmente mudaria o diretório para:

 /home/work/software
    
por 14.05.2015 / 21:50
0

Eu segui a sugestão aqui: link e nunca olhou para trás. A chave para este utilitário é que "cd" seguirá links simbólicos para diretórios, e uma função shell que se parece com algo como:

export JJPATH=$HOME/.jjlinks    
function jj {
    cd -P "$JJPATH/$1" 2>/dev/null || echo "No such link: $1"
}

No diretório $ HOME / .jjlinks você armazena todos os links simbólicos que você gosta. Existem outras funções simples do shell para criar um link para o diretório profundamente aninhado que você encontra atualmente.

Eu usei "jj", em homenagem ao autor dessa sugestão (e é aí que meu dedo indicador está na maioria das vezes), e assim:

 jj pj7

muda imediatamente o meu diretório para "~ / projects / sequence / hepatocyte / seq_783 / bin /"

    
por 15.05.2015 / 01:39
-1

Acho que esse utilitário pode ser o que você está procurando: link

    
por 14.05.2015 / 20:39