som*_*his 5 command-line unity-dash 12.04
我有一堆目录:
20130118-Cars_Directory
20130118-Bikes_Directory
20130218-Planes_Directory
20130228-Scooters_Directory
Run Code Online (Sandbox Code Playgroud)
有没有办法以在命令中间键入部分匹配项的方式更改目录。
理想情况下,样式为cd *Bikes*<TAB>
,并让 dash 自动完成其余部分?
您可以通过为 cd 创建别名并根据您的意愿定义 bash 完成来实现。参见巴赫完成手册。
这是分步指南。对于我们的新命令,我将使用“scd”,但您也可以使用“cd”。
1) 编辑 .bashrc 文件
gedit ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
2)创建别名将其
粘贴到“.bashrc”文件的最后:
# Alias for making a "Super cd"
alias scd="cd"
_scd_completion() {
mapfile -t COMPREPLY < <(ls -d */ | grep "${COMP_WORDS[COMP_CWORD]}")
}
complete -F _scd_completion scd
Run Code Online (Sandbox Code Playgroud)
保存并关闭。
3)打开一个新终端
或运行: source ~/.bashrc
4) 使用方法
只需调用该命令,后跟您要访问的目录的部分名称即可。
scd Bikes<TAB>
完毕。享受!
归档时间: |
|
查看次数: |
1956 次 |
最近记录: |