如何使选项卡完成为目录符号链接添加斜杠?

我的~/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选项。 有几种方法可以做到这一点:

  1. 通过将命令放在.inputrc文件中来自定义readline

    • 创建或编辑~/.inputrc并添加以下行:

       $include /etc/inputrc set mark-symlinked-directories on 
    • 登录/注销或按ctrl + xctrl + r重新加载设置。

  2. 通过将命令放在.bashrc文件(或.profile文件)中来自定义readline

    • 编辑~/.bashrc并添加以下行:

       bind 'set mark-symlinked-directories on' 
    • 登录/注销或获取文件:

       source ~/.bashrc 
  3. 通过在/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 ,第二个选项卡将附加/ ,第三个选项卡将打印包含目录的列表。