Jak zdefiniować dowiązanie symboliczne, którego mogę używać w każdym katalogu


11

Czy można ustawić dowiązanie symboliczne, dzięki czemu będę mógł projectwskazać katalog home/me/project, np.? Powinno to być niezależne od lokalizacji w systemie plików.

Chciałbym użyć polecenia jak cd project, nano project/file1.texi tak dalej.

Czy muszę napisać symboliczny link do wszystkich moich katalogów?

Odpowiedzi:


15

Większość powłok ma CDPATHzmienną, która cdmoże wyszukiwać katalogi do zmiany w taki sam sposób, w jaki wyszukiwane są pliki wykonywalne $PATH.

Więc jeśli dodasz swoje dowiązania symboliczne do ~/projectskatalogu i zrobisz to CDPATH=~/projects, będziesz mógł zrobić, cd fooaby wejść~/projects/foo

Dzięki zsh, jeśli $varzawiera ścieżkę można zrobić cd ~varna cdtej ścieżce. Przydatną częścią tego jest, gdy ma %~to pytanie, które następnie odzwierciedla to w twoim pytaniu:

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

Dzięki setopt cdablevarsmożesz również zrobić cd proj1zamiast cd ~proj1.


9

Prawdopodobnie chcesz użyć zmiennych zamiast dowiązań symbolicznych, np

export project=/home/me/project

następnie

cd $project

lub

vim $project/file

AKTUALIZACJA

Jak wskazał Peterph, możesz także łączyć je (w tym predefiniowane zmienne), np

export project=$HOME/project

1
Albo jeszcze lepiej project=$HOME/project...
Peter

@peterph, a nawet prościej ~/project.
Stéphane Chazelas

4
Z zsh, możesz również zrobić, setopt cdablevarsa następniecd project
Stéphane Chazelas

@StephaneChazelas: Myślę, że to dobra uwaga - chociaż jest to specyficzne dla zshbyć może możesz dodać to jako osobną odpowiedź?
jmetz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.