快速进入家目录下的目录
1 2 3 4 5 6
| 使用~或$HOME
cd ~/work cd $HOME/work 即 cd /home/wangsheng/work
|
使用别名与变量跳转到经常需要访问的目录
这个应该也比较好理解,简单举两个例子
alias work='cd $HOME/work/Project/Web/src/'
或是
work=$HOME/work/Project/Web/src/
cd $work/css
使用函数快速跳转到多个目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| qcd() { case "$1" in work) cd $HOME/work/Project/Web/src/ ;; k8s) cd /etc/kubernetes/pki ;; recipes) cd $HOME/Family/Cokking/Recipes ;; beatles) cd $HOME/Music/mp3/Artists/Beatles ;; *) return 1 ;; esac pwd }
将这段函数写入shell的配置文件即~/.bashrc
然后就可以使用这样的方式快速切换目录了: qcd work
|
使用CDPATH快速浏览文件系统
CDPATH 是一个用于扩展 cd 命令搜索路径的环境变量,允许用户通过 cd 命令快速切换到多个预定义路径下的目录,而无需输入完整路径。
和$PATH差不多,但$CDPATH搜索的不是二进制命令,而是子目录
CDPATH=$HOME:$HOME/Project:$HOME/work:/usr/local
当我执行cd ws时
会依次搜索
1.当前目录下是否存在ws
2.$HOME下是否存在ws
3.$HOME/Project下是否存在ws
4.$HOME/work下是否存在ws
5./usr/local下是否存在ws
利用CDPATH简化根目录访问
假设/home/wangsheng下还有两级子目录
CDPATH=$HOME:$HOME/Project:$HOME/helm-template:$HOME/git:..
家目录、家目录下的主要常用目录、父目录的相对路径两个点(..)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 快速寻找工作目录 cd staging ↓ cd $HOME/Project/staging
cd chart/platform ↓ $HOME/helm-template/chart/platform
快速同级目录切换,aaa与bbb为同级目录,添加了父目录的相对路径,使其可以快速切换 cd staging/aaa cd bbb ↓ $HOME/Project/staging/bbb
|
使用cd -快速切换目录
1 2 3 4 5 6 7 8
| pwd /home/wangsheng/Finances/Bank/xxxx/asd
cd /etc cd - 就能切换回原本的目录
缺陷是只能保存一个路径,只允许在两个目录之间来回切换
|
使用popd与pushd快速切换多个目录
这是一个栈结构,通过pushd将目录压入栈,通过popd将目录弹出栈
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| pushd ~/project1 pushd /tmp
查看当前栈(-v显示序号 -p纵向输出) dirs -v -p 0 /tmp 1 ~/project1 2 ~
切换回目录pushd pushd +1 将~/project1重新压入栈,并切换
切换回目录popd popd +0 切换到之前标签为1的目录下 弹出栈,这个比较复杂,可以只用pushd
|