所有文章阅读量
UP | HOME

为bsah添加书签-实现目录快速跳转

1. 原文地址

2. 在shell中快速跳转到常用目录

在 Quickly navigate your filesystem from the command-line 中发现了一种将目录加为书签实现快速跳转的好方法.

其实原理很简单,就是将指向目标目录的软链接作为书签,统一存放在一个指定的位置 然后借助 cd -P 命令来跳转到软链接指向的实际目录.

 1: 
 2: export MARKPATH=$HOME/.marks
 3: 
 4: #使用 jump 书签名 跳转到书签指向的目录;
 5: function jump { 
 6:     cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
 7: }
 8: 
 9: #使用 mark 书签名 将当前目录加为书签;
10: function mark { 
11:     mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$1"
12: }
13: 
14: #使用 unmark 书签名 删除掉指定的书签.
15: function unmark { 
16:     rm -i "$MARKPATH/$1"
17: }
18: 
19: #使用 marks 会列出所有的书签及其所指向的目录;
20: function marks {
21:     ls -l "$MARKPATH" | sed 's/  / /g' | cut -d' ' -f9- | sed 's/ -/\t-/g' && echo
22: }
23: 
24: #自动补全
25: _completemarks() {
26:     local curw=${COMP_WORDS[COMP_CWORD]}
27:     local wordlist=$(find $MARKPATH -type l -printf "%f\n")
28:     COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw"))
29:     return 0
30: }
31: 
32: complete -F _completemarks jump unmark

添加到~/.bashrc就行了.

日期: <2025-02-11/Tuesday 19:46:57>

作者: pengshao

Created: 2025-02-17 Mon 23:20

Validate