Istnieje opcja powłoki cdable_vars
:
cdable_vars
Jeśli jest ustawiona, przyjmuje się, że argumentem cd
polecenia wbudowanego, który nie jest katalogiem, jest nazwa zmiennej, której wartością jest katalog, do którego należy przejść.
Możesz dodać to do swojego .bashrc
:
shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main
Zauważ, że zastąpiłem tyldę $HOME
; cudzysłowy zapobiegają rozwijaniu tyldy, a Bash narzekałby, że nie ma katalogu ~/Files/Scripts/Main
.
Teraz możesz tego użyć w następujący sposób:
cd myFold
Nie jest $
wymagane. Właściwie o to chodzi - jak pokazano w innych odpowiedziach, cd "$myFold"
działa bez opcji powłoki. cd myFold
działa również, jeśli ścieżka w myFold
zawiera spacje, nie jest wymagane cytowanie.
Zwykle działa to nawet z autouzupełnianiem tabulatorów, ponieważ _cd
funkcja bash_completion
sprawdza, czy cdable_vars
jest ustawiona - ale nie każda implementacja robi to w ten sam sposób, więc być może będziesz musiał bash_completion
ponownie pobrać źródło w swoim .bashrc
(lub edytować, /etc/profile
aby ustawić opcję powłoki).
Inne powłoki mają podobne opcje, na przykład Zsh ( cdablevars
).