好的;假设我在 Bash 中,并且文件夹中有几个文件。其中有几个被命名为file☠☡☢☣.txt
,☠☡☢☣
以疯狂的无法输入的 unicode 字符开头。我该如何提及其中之一?按 Tab 键只会自动完成file
,然后它会要求您输入一个疯狂的字符。有没有办法告诉 bash“选择你刚刚给我的列表中的第三个”?
答案1
我建议您解决这个问题并使用另一种类型的键绑定与 readline ,例如Shift+ TAB。将以下内容添加到您的~/.inputrc
:
"\e[Z": menu-complete
然后发出exec bash
(这应该读取您的设置~/.inputrc
)。作为一次性,您可以通过运行来设置相同的绑定,而不是重新启动 bash bind '"\e[Z": menu-complete'
。
您现在应该能够使用重复ShiftTAB序列来循环匹配的文件名(而不是必须输入下一个匹配字符)。这适用于发出的任何命令(因为它是绑定到序列的标准读取行命令ShiftTAB)。正如OP所指出的,这不会影响按键的标准行为TAB,它只是添加了组合的功能 ShiftTAB。
答案2
有时有效的另一种方法是使用通配符?
或*
通配符,然后键入一些剩余的“内容”,直到获得与制表符补全的唯一匹配。
答案3
转到包含 的目录file☠☡☢☣.txt
并输入ls -i
.你会看到这一行:
xxxxx file☠☡☢☣.txt
其中xxxxx
是 的索引号file☠☡☢☣.txt
。进入:
find . -maxdepth 1 -inum xxxxx -exec /bin/mv -i {} bettername.txt \;
其中xxxxx
前一行是从 获得的上述索引号ls -i
。这重命名file☠☡☢☣.txt
为bettername.txt
.