9

假设我有一个文件夹,其中的文件名称如下:

  • log_1.log
  • log_2.log
  • log_2.gz

我想在 log_2.gz 上执行一些操作,比如说移动。

在 Windows cmd.exe 中,我习惯于执行以下步骤:

  1. 类型move(仅此而已)
  2. tabtabtab遍历选项卡完成选项,直到我到达log_2.gz
  3. 类型destination

但是在 bash shell 中(在 Mac OS X 10.8.3 上的 iTerm2 中),我必须这样做:

  1. 类型mv l
  2. tab它带我去log_并发出恼人的哔哔声
  3. 类型2
  4. tab它带我去log_2.并发出恼人的哔哔声
  5. 类型g
  6. tab它带我去log_2.gz并且令人满意地沉默
  7. 类型destination

如您所见,即使您知道目标文件名,bash 也需要更多步骤,但想象一下您不确定文件名中的确切内容(可能ls太长)的场景。在几次 + 输入后,我经常发现自己处于这种情况,tab并且被迫放弃命令,ls再次运行,复制文件名,甚至可能运行 apwd与文件夹连接,然后从我离开的地方继续。这很烦人。

4

1 回答 1

11

您可以在您的.inputrc(如果没有,则创建它)文件中添加以下内容。添加后,获取文件或注销并重新登录。

set show-all-if-ambiguous on
set completion-ignore-case on
TAB: menu-complete
于 2013-05-29T05:28:42.910 回答