如何使选项卡完成为目录符号链接添加斜杠?
我的~/Documents
目录是一个符号链接:
nathan@nathan-desktop:~$ stat Documents File: Documents -> /mnt/nathan/extended/Documents
如果我想要进入目录,我可以输入:
c d space D o c tab
…和标签完成将按预期将cd Doc
附加到cd Doc
的末尾。 但是,即使符号链接指向目录,它也不会附加尾随/
。
有没有办法让Bash这样做?
为READLINE启用mark-symlinked-directories
选项。 有几种方法可以做到这一点:
-
通过将命令放在
.inputrc
文件中来自定义readline :-
创建或编辑
~/.inputrc
并添加以下行:$include /etc/inputrc set mark-symlinked-directories on
-
登录/注销或按ctrl + x和ctrl + r重新加载设置。
-
-
通过将命令放在
.bashrc
文件(或.profile
文件)中来自定义readline :-
编辑
~/.bashrc
并添加以下行:bind 'set mark-symlinked-directories on'
-
登录/注销或获取文件:
source ~/.bashrc
-
-
通过在
/etc/profile.d
目录中创建.sh
文件来自定义所有用户的readline :-
创建一个文件
/etc/profile.d/ mark-symlinked-directories.sh
,它应该如下所示:#!/bin/sh bind 'set mark-symlinked-directories on'
不需要对此文件的可执行权限。
-
登录/注销。 而已。
-
进一步阅读:
- Bash手册页中的READLINE部分
- 前两种方式的来源
- 第三种方式的想法来源
我找到的一个简单方法是完成双选项卡 :
c d space D o c 选项 卡 选项 卡
第一个选项卡将附加uments
,第二个选项卡将附加/
,第三个选项卡将打印包含目录的列表。