(require 'ecd)
(global-unset-key "\M-c")
(global-set-key (kbd "M-c") 'ecd)
(setq ecd-list
'((?/ . "/")
(?~ . "~/")
(?d . "~/Downloads")
(?e . "~/.emacs.d")))
On eshell, type M-c e
$ pushd ~/.emacs.d
On other mode, type M-c e
M-x eshell $ pushd ~/.emacs.d M-x dired-jump
I will either put the prefix of C-u, without moving, if you run from the minibuffer, and just put the path to kill-ring