Como definir um link simbólico que eu possa usar em todos os meus diretórios

11

É possível escrever um link simbólico para que, não importa onde eu esteja no sistema de arquivos, eu possa usar, por exemplo, project para apontar o diretório home/me/project ? Eu gostaria de usar comandos como cd project , nano project/file1.tex e assim por diante. Eu tenho que escrever um link simbólico para todos os meus diretórios?

    
por LaTeXist 30.04.2014 / 16:33

2 respostas

15

A maioria dos shells tem uma variável CDPATH que cd pode procurar pelos diretórios para alterar da mesma maneira que os executáveis são pesquisados em $PATH .

Portanto, se você adicionar seus links simbólicos em um diretório ~/projects e fizer CDPATH=~/projects , poderá fazer cd foo em ~/projects/foo

Com zsh , se $var contiver um caminho, você poderá fazer cd ~var a cd para esse caminho. A parte útil disso é quando o seu prompt tem %~ , que então reflete no seu prompt:

$ proj1=/usr/local proj2=/etc/apache2
$ PS1='%~$ '
$ cd ~proj1
~proj1$ cd ~proj2/sites-enabled
~proj2/sites-enabled$

Com setopt cdablevars , você também pode fazer cd proj1 em vez de cd ~proj1 .

    
por 30.04.2014 / 16:59
9

Você provavelmente deseja usar variáveis em vez de links simbólicos, por exemplo,

export project=/home/me/project

então

cd $project

ou

vim $project/file

UPDATE

Como apontado por peterph, você também pode combiná-los (incluindo variáveis predefinidas), por exemplo,

export project=$HOME/project
    
por 30.04.2014 / 16:38

Tags