针对 Bash 的不完整路径展开(补全)功能
创始人
2024-03-01 23:41:31
0

bash-complete-partial-path 通过添加不完整的路径展开(类似于 Zsh)来增强 Bash(它在 Linux 上,macOS 使用 gnu-sed,Windows 使用 MSYS)中的路径补全。如果你想在 Bash 中使用这个省时特性,而不必切换到 Zsh,它将非常有用。

这是它如何工作的。当按下 Tab 键时,bash-complete-partial-path 假定每个部分都不完整并尝试展开它。假设你要进入 /usr/share/applications 。你可以输入 cd /u/s/app,按下 Tab,bash-complete-partial-path 应该把它展开成 cd /usr/share/applications 。如果存在冲突,那么按 Tab 仅补全没有冲突的路径。例如,Ubuntu 用户在 /usr/share 中应该有很多以 “app” 开头的文件夹,在这种情况下,输入 cd /u/s/app 只会展开 /usr/share/ 部分。

另一个更深层不完整文件路径展开的例子。在Ubuntu系统上输入 cd /u/s/f/t/u,按下 Tab,它应该自动展开为 cd /usr/share/fonts/truetype/ubuntu

功能包括:

  • 转义特殊字符
  • 如果用户路径开头使用引号,则不转义字符转义,而是在展开路径后使用匹配字符结束引号
  • 正确展开 ~ 表达式
  • 如果正在使用 bash-completion 包,则此代码将安全地覆盖其 _filedir 函数。无需额外配置,只需确保在主 bash-completion 后引入此项目。

查看项目页面以获取更多信息和演示截图。

安装 bash-complete-partial-path

bash-complete-partial-path 安装说明指定直接下载 bash_completion 脚本。我更喜欢从 Git 仓库获取,这样我可以用一个简单的 git pull 来更新它,因此下面的说明将使用这种安装 bash-complete-partial-path。如果你喜欢,可以使用官方说明。

1、 安装 Git(需要克隆 bash-complete-partial-path 的 Git 仓库)。

在 Debian、Ubuntu、Linux Mint 等中,使用此命令安装 Git:

sudo apt install git

2、 在 ~/.config/ 中克隆 bash-complete-partial-path 的 Git 仓库:

cd ~/.config && git clone https://github.com/sio/bash-complete-partial-path

3、 在 ~/.bashrc 文件中 source ~/.config/bash-complete-partial-path/bash_completion

用文本编辑器打开 ~/.bashrc。例如你可以使用 Gedit:

gedit ~/.bashrc

~/.bashrc 的末尾添加以下内容(在一行中):

[ -s "$HOME/.config/bash-complete-partial-path/bash_completion" ] && source "$HOME/.config/bash-complete-partial-path/bash_completion"

我提到在文件的末尾添加它,因为这需要包含在你的 ~/.bashrc 文件的主 bash-completion 下面(之后)。因此,请确保不要将其添加到原始 bash-completion 之上,因为它会导致问题。

4、 引入 ~/.bashrc:

source ~/.bashrc

这样就好了,现在应该安装完 bash-complete-partial-path 并可以使用了。


via: https://www.linuxuprising.com/2018/07/incomplete-path-expansion-completion.html

作者:Logix 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

飞书 CLI 开源:AI ...
钛媒体App 3月28日消息,飞书官方在 GitHub 开源了命令...
2026-03-28 19:53:17
想提升你的Linux技能吗...
Nutyx是一款独特的Linux发行版,以其独立性和挑战性吸引了众...
2026-02-19 06:19:34
u盘里的文件突然不见了怎么...
这是(GZZDdata)整理的信息,希望能帮助到大家 当发现u盘里...
2026-01-29 17:18:27
微软发布winapp开源命...
微软昨日(1 月 22 日)发布博文,为简化 Windows 应用...
2026-01-23 17:19:23
文件碎片整理 WinCon...
WinContig 是一个用起来很方便的独立碎片整理工具。它有个很...
2026-01-20 18:24:04
基础Ubuntu网络代理的...
Ubuntu系统的网络代理配置是许多用户日常使用中的必备技能,从基...
2025-08-24 16:46:06

热门资讯

值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...