在 Bash 中选择 unicode 文件名

在 Bash 中选择 unicode 文件名

好的;假设我在 Bash 中,并且文件夹中有几个文件。其中有几个被命名为file☠☡☢☣.txt☠☡☢☣以疯狂的无法输入的 unicode 字符开头。我该如何提及其中之一?按 T​​ab 键只会自动完成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☠☡☢☣.txtbettername.txt.

相关内容