2 个版本
0.1.1 | 2023 年 9 月 5 日 |
---|---|
0.1.0 | 2023 年 9 月 5 日 |
#2853 在 命令行工具
48KB
1K SLoC
qcd – 快速更改目录
qcd 是一个 Linux 工具,可帮助您提高在命令行中的效率。使用 qcd,您只需输入类似 qcd 3
的命令即可切换到另一个目录,并通过输入 qcd -o
回到您原来的位置。或者,您可以使用交换功能(qcd -w
)在两个目录之间切换。
为此,您需要在数据库文件(sqlite3)中存储经常访问的目录。此数据库中的条目通过索引(例如示例中的值 '3')进行引用。如果您不喜欢记住索引,则可以为每个条目分配别名。索引和别名可以自由调整以满足您的需求。
此外,qcd
提供了一个堆栈概念。在示例中(qcd 3
),在更改目录之前,当前工作目录被放置在堆栈上(堆栈顶部)。输入 qcd -o
将从堆栈顶部弹出(删除)路径,并将工作目录更改为该路径。
输入 qcd -h
查看完整帮助。
用法示例
更改目录
qcd ENTRY [-n] Chdir to path with idx or alias ENTRY (w/o -n: adds work dir to stack)
qcd -o (pop) Chdir to top of stack, remove that entry from stack
添加或删除条目
qcd -a PATH [-i IDX] [-s ALIAS] Add PATH to database
qcd -p [-i IDX] [-s ALIAS] Add current working directory to database
qcd -r ENTRY Remove row with idx or alias ENTRY
qcd -u (push) Add current working directory to (top of) stack
查询
qcd -l List all indexes, aliases and paths
qcd -q PATH Query index of PATH
ls `qcd -e 4` List directory contents of path with idx 4
别名匹配
您选择的别名名称可以影响您的效率。缩写别名将以独特的方式匹配到别名字符串的开始。例如,在数据库中的别名 pets 和 people 中,qcd pet
将匹配第一个,而 qcd pe
将不匹配任何内容。如果只有一个以字母 'a' 开头的别名,则 qcd a
已经可以完成工作。
获取 qcd
从源文件构建 qcd
您需要一个安装了 Rust 的 Linux 系统。切换到方便的目录并输入
git clone https://github.com/ClaasBontus/qcd_rs.git
cd qcd_rs
cargo build --release
成功构建后,您应该在子目录 target/release/ 中找到可执行文件(命名为 qcd_rs
)。
安装
仅将 qcd 二进制文件复制到您的搜索路径中的一个目录中是 不够的(如果您想了解原因,请阅读此内容)。
- 将 qcd_rs 复制到您的 PATH 中的一个目录(或使用以下代码中 qcd_rs 的完整路径指定)。
- 将以下代码添加到您的
.bashrc
或.zshrc
文件中
qcdfunc()
{
d=`qcd_rs "$@"`
if (( $? ))
then
\builtin echo $d
else
\builtin cd $d
fi
}
alias qcd=qcdfunc
export QCD_RS_SESSIONID=`qcd_rs --pid`
环境变量
- QCD_RS_DBPATH: sqlite数据库的路径(默认:home-directory)。
- QCD_RS_DBNAME: sqlite数据库文件的名称(默认:.qcd_rs.sqlite)。
- QCD_RS_SESSIONID: 进程ID。用于为每个打开的shell提供单独的栈。
备注
- qcd防止栈顶重复条目。
- 栈上的旧条目(超过21天)最终会被移除。
- 支持限于UTF-8路径。
依赖项
~24-35MB
~516K SLoC