Comment définir un lien symbolique que je peux utiliser dans chaque répertoire


11

Est-il possible de définir un lien symbolique afin que je puisse utiliser projectpour pointer le répertoire home/me/project, par exemple? Cela doit être indépendant de l'emplacement dans le système de fichiers.

Je voudrais utiliser des commandes comme cd project, nano project/file1.texet ainsi de suite.

Dois-je écrire un lien symbolique vers tous mes répertoires?

Réponses:


15

La plupart des shells ont une CDPATHvariable qui cdpeut rechercher des répertoires vers lesquels changer comme pour les exécutables $PATH.

Donc, si vous ajoutez vos liens symboliques dans un ~/projectsrépertoire et que CDPATH=~/projectsvous le faites , vous pourrez le faire cd foopour aller dans~/projects/foo

Avec zsh, si $varcontient un chemin que vous pouvez faire cd ~varpour cdà ce chemin. La partie utile de cela est lorsque votre invite a %~qui la reflète ensuite dans votre invite:

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

Avec setopt cdablevars, vous pouvez aussi faire à la cd proj1place de cd ~proj1.


9

Vous souhaitez probablement utiliser des variables au lieu de liens symboliques, par exemple

export project=/home/me/project

puis

cd $project

ou

vim $project/file

MISE À JOUR

Comme l'a souligné Peter, vous pouvez également combiner ces éléments (y compris des variables prédéfinies), par exemple

export project=$HOME/project

1
Ou encore mieux project=$HOME/project...
peterph

@peterph, ou encore plus simple ~/project.
Stéphane Chazelas

4
Avec zsh, vous pouvez aussi faire setopt cdablevarset ensuitecd project
Stéphane Chazelas

@StephaneChazelas: Je pense que c'est un bon point - mais comme c'est spécifique à zshpeut-être pourriez-vous ajouter cela comme une réponse distincte?
jmetz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.