我有一个经常使用的目录。假设是:
/etc/insserv.conf.d/testname
我在我的中设置了一个变量/root/.bashrc
:
mydir=/etc/insserv.conf.d/testname
现在,我可以通过这个命令打开这个目录
cd $mydir
但我真的不喜欢这个角色$
。有什么解决方法可以实现这个吗?我的意思是:我想通过 来打开这个目录cd mydir
,可以吗Ubuntu 16.04
?
答案1
您正在寻找cdable_vars
选择。shopt -s cdable_vars
如果您使用的是 bash(setopt cdablevars
如果是 zsh),请运行它来激活它。之后简单的cd mydir
就可以了。
笔记如果您尝试cd mydir
从包含同名文件或目录的目录中执行操作,则 shell 将尝试使用当前目录中的文件或目录对象,而不是扩展变量。
答案2
怎么样:
mydir
只需像您已经完成的那样定义变量并创建一个函数:
mydir=/etc/insserv.conf.d/testname
mydir(){ cd "$mydir"; }
完毕。
另一种方法是使用别名:
alias mydir='cd "$mydir"'
答案3
您应该使用全局别名。 bash 似乎不支持它,但它与 zsh 配合得很好。
演示
安装
$ sudo apt install zsh
为了获得和我一样的外观,你应该
安装 Oh My Zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
替换您的主题以忽略:
sed 's/^ZSH_THEME=".*"$/ZSH_THEME="agnoster"/' -i .zshrc
并安装 Powerline 字体以使 agnoster 工作:
curl https://pastebin.com/raw/nD4DTpuF | bash
安装语法高亮插件:
下载
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
并应用:
sed 's/^plugins=\((.*)\)$/plugins=(\1 zsh-syntax-highlighting)'
最后,重新加载您的配置设置:
source .zshrc
很抱歉这个教程太长了,但我希望你会喜欢它。