Es gibt eine Shell-Option cdable_vars
:
cdable_vars
Wenn dies festgelegt ist, cd
wird angenommen, dass ein Argument für den integrierten Befehl, der kein Verzeichnis ist, der Name einer Variablen ist, deren Wert das Verzeichnis ist, in das geändert werden soll.
Sie können dies zu Ihrem hinzufügen .bashrc
:
shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main
Beachten Sie, dass ich die Tilde durch ersetzt habe $HOME
. Anführungszeichen verhindern eine Tilde-Erweiterung und Bash würde sich beschweren, dass es kein Verzeichnis gibt ~/Files/Scripts/Main
.
Jetzt können Sie dies wie folgt verwenden:
cd myFold
Nicht $
erforderlich. Das ist eigentlich der springende Punkt - wie in anderen Antworten gezeigt, cd "$myFold"
funktioniert dies ohne die Shell-Option. cd myFold
funktioniert auch, wenn der Pfad in myFold
Leerzeichen enthält, kein Anführungszeichen erforderlich.
Dies funktioniert normalerweise sogar mit der automatischen Vervollständigung von Registerkarten, da die _cd
Funktion in bash_completion
prüft, ob festgelegt cdable_vars
ist - aber nicht jede Implementierung tut dies auf die gleiche Weise, sodass Sie möglicherweise erneut eine Quelle bash_completion
in Ihrem erstellen müssen .bashrc
(oder bearbeiten müssen /etc/profile
, um die Shell-Option festzulegen).
Andere Shells haben ähnliche Optionen, zum Beispiel Zsh ( cdablevars
).