So definieren Sie einen symbolischen Link, den ich in jedem Verzeichnis verwenden kann

11

Ist es möglich, einen symbolischen Link festzulegen, mit dem ich projectauf das Verzeichnis verweisen kann home/me/project, z. Dies sollte unabhängig vom Speicherort im Dateisystem sein.

Ich mag Befehle verwenden , wie cd project, nano project/file1.texund so weiter.

Muss ich einen symbolischen Link zu allen meinen Verzeichnissen schreiben?

LaTeXist
quelle

Antworten:

15

Die meisten Shells verfügen über eine CDPATHVariable, cddie nach Verzeichnissen suchen kann, in die geändert werden kann, genauso wie in ausführbaren Dateien gesucht wird $PATH.

Also , wenn Sie Ihre Symlinks in einem Add - ~/projectsVerzeichnis und zu tun CDPATH=~/projects, werden Sie in der Lage sein zu tun , cd fooum zu gehen~/projects/foo

Mit zsh, wenn Sie $vareinen Pfad enthält , die Sie tun können , cd ~varum cdauf diesen Pfad. Der nützliche Teil davon ist, wenn Ihre Eingabeaufforderung hat, %~was es dann in Ihrer Eingabeaufforderung widerspiegelt:

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

Mit setopt cdablevars, tun können Sie auch cd proj1statt cd ~proj1.

Stéphane Chazelas
quelle
9

Sie möchten wahrscheinlich Variablen anstelle von symbolischen Links verwenden, z

export project=/home/me/project

dann

cd $project

oder

vim $project/file

AKTUALISIEREN

Wie von peterph hervorgehoben, können Sie diese auch kombinieren (einschließlich vordefinierter Variablen), z

export project=$HOME/project
jmetz
quelle
1
Oder noch besser project=$HOME/project...
Peterph
@ Peterph oder noch einfacher ~/project.
Stéphane Chazelas
4
Mit zshkönnen Sie auch setopt cdablevarsund dann tuncd project
Stéphane Chazelas
@StephaneChazelas: Ich denke, das ist ein guter Punkt - obwohl Sie das zshvielleicht spezifisch als separate Antwort hinzufügen könnten?
Jmetz