Cómo definir un enlace simbólico que puedo usar en cada directorio

11

¿Es posible establecer un enlace simbólico para que pueda usar projectpara apuntar el directorio home/me/project, por ejemplo? Esto debería ser independiente de la ubicación en el sistema de archivos.

Me gustaría usar comandos como cd project, nano project/file1.texetc.

¿Tengo que escribir un enlace simbólico a todos mis directorios?

LaTeXist
fuente

Respuestas:

15

La mayoría de los shells tienen una CDPATHvariable que cdpuede buscar directorios para cambiar de la misma manera que se buscan los ejecutables $PATH.

Entonces, si agrega sus enlaces simbólicos en un ~/projectsdirectorio y lo hace CDPATH=~/projects, podrá hacerlo cd foopara ingresar~/projects/foo

Con zsh, si $varcontiene una ruta que puede hacer cd ~varpara cdque ese camino. La parte útil de eso es cuando tiene su mensaje %~que luego lo refleja en su mensaje:

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

Con setopt cdablevars, también puedes hacer en cd proj1lugar de cd ~proj1.

Stéphane Chazelas
fuente
9

Probablemente desee utilizar variables en lugar de enlaces simbólicos, p. Ej.

export project=/home/me/project

entonces

cd $project

o

vim $project/file

ACTUALIZAR

Como señaló Peter Peter, también puede combinarlos (incluidas las variables predefinidas), p. Ej.

export project=$HOME/project
jmetz
fuente
1
O incluso mejor project=$HOME/project...
Peter
@peterph, o incluso más simple ~/project.
Stéphane Chazelas
44
Con zsh, también puedes hacerlo setopt cdablevarsy luegocd project
Stéphane Chazelas
@StephaneChazelas: Creo que es un buen punto, aunque, como es específico, ¿ zshquizás podría agregarlo como una respuesta separada?
jmetz