Istnieje opcja powłoki cdable_vars:
cdable_vars
Jeśli jest ustawiona, przyjmuje się, że argumentem cdpolecenia 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 myFolddziała również, jeśli ścieżka w myFoldzawiera spacje, nie jest wymagane cytowanie.
Zwykle działa to nawet z autouzupełnianiem tabulatorów, ponieważ _cdfunkcja bash_completionsprawdza, czy cdable_varsjest ustawiona - ale nie każda implementacja robi to w ten sam sposób, więc być może będziesz musiał bash_completionponownie pobrać źródło w swoim .bashrc(lub edytować, /etc/profileaby ustawić opcję powłoki).
Inne powłoki mają podobne opcje, na przykład Zsh ( cdablevars).